vue打包静态资源后显示空白及static文件路径报错的解决

yizhihongxing

如何解决vue打包静态资源后显示空白及static文件路径报错问题?

在vue项目中,打包后出现空白或者找不到static文件的问题相信大家都遇到过。下面我来详细讲解如何解决这个问题。

解决过程:

一、修改Vue项目的config/index.js文件

config/index.js文件主要包含了一些项目的基本配置,如开发和生产环境的配置等。我们需要修改生产环境下的一些配置,主要包括assetsPublicPath和assetsSubDirectory。

首先,我们需要在该文件中找到如下代码:

    build: {

        // Template for index.html
        index: path.resolve(__dirname, '../dist/index.html'),

        // Paths
        assetsRoot: path.resolve(__dirname, '../dist'),
        assetsSubDirectory: 'static',
        assetsPublicPath: './',

    .........
  1. 修改assetsPublicPath

assetsPublicPath是指静态资源的公共路径,它应该和你的主页文件在同一级目录。而./是指当前目录,这就可能导致在不同的目录下无法使用相同的静态资源。所以我们需要将其修改为./,如下:

    assetsPublicPath: './',

改为

    assetsPublicPath: '/',
  1. 修改assetsSubDirectory

assetsSubDirectory是指存放生成的静态资源(js、css、img等)的目录。很多开发者使用的是/static,但是这会导致可以在本地使用但是在服务器(比如nginx)上无法正确请求。所以我们需要将其改为‘./static’,这样在不同目录服务器环境下都可以正常调用静态资源了,如下:

    assetsSubDirectory: 'static',

改为

    assetsSubDirectory: './static',

二、修改webpack.base.conf.js

在在build文件夹下找到webpack.base.conf.js文件,在module.exports下面添加:

    module: {
        rules: [
            {
                test: /\.scss$/,
                loaders: ["style", "css", "sass"]
            }
        ]
    },

三、打包

重启项目,执行npm run build 进行项目打包。

至此,我们已经完成了vue打包静态资源后显示空白及static文件路径报错问题的完整解决。

示例一:

如果打包后发现静态资源没有被引入,可以通过打开控制台查看network选项卡,或者通过webpack-bundle-analyzer插件分析打包后的代码 bundle visualizer(需要全局安装webpack-bundle-analyzer插件)。如果资源被引入了,查看路径是否正确,主要需要确认assetsPublicPath和assetsSubDirectory设置是否正确。

示例二:

如果打包后,访问页面为空白或报错说找不到资源的话,可以在打开控制台,看看console有没有报错,如果报错的话,可以看看路径是不是设置正确的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue打包静态资源后显示空白及static文件路径报错的解决 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • Vue3 PC端页面开发规范及说明

    Vue3 PC端页面开发规范及说明 1. 项目结构 在Vue3项目中,按照以下目录结构组织项目,便于代码管理和维护: project-name/ ├── public/ │ ├── index.html │ └── … ├── src/ │ ├── assets/ // 存放图片、字体等静态资源 │ ├── components/ // 公共组件 │ ├…

    Vue 2023年5月27日
    00
  • laravel 5.4 + vue + vux + element的环境搭配过程介绍

    下面就是”laravel 5.4 + vue + vux + element的环境搭配过程介绍”。 简介 这里要介绍的是如何在 laravel 5.4 中使用 Vue.js,并配合使用 vux 和 element 框架。Vue.js 是一个轻量级的前端框架,通过数据绑定和组件化的方式,使得前端的开发更加高效和便捷。vux 是一个专门面向移动端 UI 的框架,…

    Vue 2023年5月28日
    00
  • vue组件watch属性实例讲解

    下面来详细讲解一下“Vue组件watch属性实例讲解”的完整攻略。 1. watch属性简介 在 Vue 组件中,watch 属性是用于监听数据变化并作出相应行为的一种功能。通俗的说,就是当我们需要对某个数据进行监听,并且当数据发生变化时,希望自动执行一些操作,那么就可以使用 watch 属性。 2. watch属性的基础使用 watch 属性的基础使用格式…

    Vue 2023年5月29日
    00
  • 详解如何搭建mpvue框架搭配vant组件库的小程序项目

    下面是详解如何搭建mpvue框架搭配vant组件库的小程序项目的完整攻略。 步骤1:准备工作 在开始搭建之前,我们需要准备以下工具和环境: Node.js LTS版本 mpvue-cli脚手架工具 Vant Weapp组件库 如果你已经安装好了Node.js和mpvue-cli,可以直接通过以下命令安装Vant Weapp: npm i vant-weapp…

    Vue 2023年5月27日
    00
  • Vue项目之ES6装饰器在项目实战中的应用

    这里给出完整攻略。 Vue项目之ES6装饰器在项目实战中的应用 一、ES6装饰器基础概念 ES6装饰器是ES6的一个新特性,允许我们在一个类或者一个类的属性或方法前面添加一个装饰器函数来改变这个类的行为。 简单来说,装饰器是一种自定义的函数,可以对指定的对象进行重新定义、包装、修饰等操作。 二、ES6装饰器的用法 2.1 类装饰器 类装饰器通常用于添加类的静…

    Vue 2023年5月28日
    00
  • vue里使用create,mounted调用方法的正确姿势说明

    接下来我来详细讲解“Vue中使用created和mounted调用方法的正确方式”。 1. created 和 mounted Vue 组件的生命周期函数可以分为 beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。今天我们主要来讲解其中的…

    Vue 2023年5月28日
    00
  • 11行JS代码制作二维码生成功能

    当我们想要在网页上制作二维码时,可以使用JavaScript编写11行代码来实现,下面是详细步骤: 1. 引入Qrcode.js库 我们需要使用Qrcode.js库来生成二维码,因此首先需要将该库引入网页中。 <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcod…

    Vue 2023年5月27日
    00
  • 解决vue props传Array/Object类型值,子组件报错的情况

    解决 Vue props 传 Array/Object 类型值,子组件报错的情况,可以通过以下几种方式来实现,具体步骤如下: 使用具体类型声明 Props 在声明组件的 props 时,可以使用具体类型来声明,例如: props: { data: Array // 声明 Array 类型的 data Prop } 这样可以确保子组件在接收到 props 时,…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部