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


Posted in Javascript onSeptember 02, 2020

今天使用vue打包(npm run build)遇到了几个坑,在这里分享给大家

打包之后打开dist的页面显示空白:

这个问题以前就处理过,是打包过程中出现错误频率较高的一种,可能有3处地方会出现这种情况

1、记得改一下config下面的index.js中bulid模块导出的路径。因为打包后的index.html里边的内容都是通过script标签引入的,默认显示的路径不对,打开肯定是空白的。

build: {
  index: path.resolve(__dirname, '../dist/index.html'),
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  productionSourceMap: true,
  devtool: '#source-map',
  productionGzip: false,
  productionGzipExtensions: ['js', 'css'],
  bundleAnalyzerReport: process.env.npm_config_report
 }

这里需要将 assetsPublicPath: '/'改为assetsPublicPath: './',

2.src里边router/index.js路由配置里边默认模式是mode:'hash'(页面会在路由上加#),有时候改成了history(纯净路由)模式的话,打开也会是一片空白。所以改为hash或者直接把模式配置删除,让它默认的就行 。

export default new Router({
//mode: 'history',
mode:'hash',\\或者直接不写
 routes: [{}]
)}

3.也有可能是因为背景图片路径没有配置需要在build/utils.js添加配置publicPath: '../../'

if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    publicPath:'../../',
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }

打包后找不到响应路径:

这都是比较常见的几种解决方式,如果将静态资源的图片路径作为绑定数据以js引入,图片放入了static里面用来引入这个页面又该怎样处理呢,如果以绝对路径访问vue打包是不会处理这一类的,所以打包后它图片访问的路径不会更改,而打包后dist文件里就只有index.html和webpack不会处理的static文件夹(vue static/下的文件都不会被Webpack处理:它们使用相同的文件名,直接拷贝到最终的路径)

解决方式有两种,

1.如果要上线的话,需要将你的主域名加在static之前然后他会逐级去访问打包后的文件。

return {
 isShow:true,
 imgData:'',
 myUpPic:'/yourDN/static/img/logo.png'
}

2.由于vue将组件访问静态资源的路径配置好了,你可以直接/static来找到static下的文件,但是这里的问题就是你访问的时候它是逐级访问这些文件的,所以打包后他还是会找不到静态资源的文件,在这里你就需要将/static改成./static,这样的话他就会在打包后的文件夹下直接访问其之下的静态资源文件夹。

return {
 isShow:true,
 imgData:'',
  //myUpPic:'/static/img/logo.png' 
 myUpPic:'./static/img/logo.png'
}

以上就是个人处理vue打包bug的一些小经验,希望这些能够对大家有所帮助。

补充知识:vue打包后路径多了个/css/static

vue打包后路径多了个/css/static导致一些css属性效果不显示。

解决方法:

在build/utils.js文件中添加publicPath:'…/…/',重新打包即可。

if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: "vue-style-loader",
    publicPath: "../../"
   });
  } else {
   return ["vue-style-loader"].concat(loaders);
  }

以上这篇vue打包静态资源后显示空白及static文件路径报错的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript进阶教程(第四课第一部分)
Apr 05 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
javascript 日期时间 转换的方法
Feb 21 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
jQuery中html()方法用法实例
Dec 25 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
jQuery qrcode生成二维码的方法
Apr 03 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 #Javascript
JavaScript事件循环及宏任务微任务原理解析
Sep 02 #Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 #Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 #Javascript
JavaScript this关键字指向常用情况解析
Sep 02 #Javascript
JavaScript arguments.callee作用及替换方案详解
Sep 02 #Javascript
JavaScript Array.flat()函数用法解析
Sep 02 #Javascript
You might like
php 表单数据的获取代码
2009/03/10 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
setTimeout学习小结
2017/02/08 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
Seajs源码详解分析
2019/04/02 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Django权限机制实现代码详解
2018/02/05 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
毕业生个人求职信范例分享
2013/12/17 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
python实现学员管理系统(面向对象版)
2022/06/05 Python