Vue 打包的静态文件不能直接运行的原因及解决办法


Posted in Vue.js onNovember 19, 2020

问题

吾辈使用 vue-cli 直接生成的 vue 模板项目,在模板之上继续开发的。然而在使用 npm run build 打包项目时,却发现打包好的项目在浏览器中直接打开好像什么都没有?

原因

查看了一下打包后的 index.html 源码,终于发现了一个重要的点:

Vue 打包的静态文件不能直接运行的原因及解决办法

所有涉及到路径的地方全都是以 / 开头的

下面是吾辈打包后生成的 dist 目录

dist:.
│ index.html
│
└─static
  ├─css
  │   app.b7bce283257fbd427fb1dc3fea80cee1.css
  │   app.b7bce283257fbd427fb1dc3fea80cee1.css.map
  │
  ├─fonts
  │   MaterialIcons-Regular.012cf6a.woff
  │   MaterialIcons-Regular.570eb83.woff2
  │   MaterialIcons-Regular.a37b0c0.ttf
  │   MaterialIcons-Regular.e79bfd8.eot
  │
  └─js
      app.58cce746b2fe4ac2f2b9.js
      app.58cce746b2fe4ac2f2b9.js.map
      manifest.2ae2e69a05c33dfc65f8.js
      manifest.2ae2e69a05c33dfc65f8.js.map
      vendor.a32972498ed8de656202.js
      vendor.a32972498ed8de656202.js.map

这下很清楚了,vue-cli 生成的模板项目打包后的文件默认需要放到静态资源服务器上,而且还必须是根目录!这很不好,很糟糕,所以需要修改配置。

解决方案

修改文件 _/config/index.js_,将 build.assetsPublicPath 属性的值由 / 改为 ./

Vue 打包的静态文件不能直接运行的原因及解决办法

修改文件 _/build/utils.js_,在插件 ExtractTextPlugin 中添加 publicPath: '../../'

Vue 打包的静态文件不能直接运行的原因及解决办法

那么,使用 npm run build 重新打包后的静态文件应该就可以直接打开啦

以上就是Vue 打包的静态文件不能直接运行的原因及解决办法的详细内容,更多关于vue 打包静态文件的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue实现图书管理小案例
Dec 03 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
Vue 修改网站图标的方法
Dec 31 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 Vue.js
如何使用 vue-cli 创建模板项目
Nov 19 #Vue.js
深入了解Vue3模板编译原理
Nov 19 #Vue.js
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 #Vue.js
vue 插槽简介及使用示例
Nov 19 #Vue.js
详解Vue的mixin策略
Nov 19 #Vue.js
一篇超完整的Vue新手入门指导教程
Nov 18 #Vue.js
vue3.0实现点击切换验证码(组件)及校验
Nov 18 #Vue.js
You might like
77A一级收信机修理记
2021/03/02 无线电
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
php实现微信发红包功能
2018/07/13 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
Python重新加载模块的实现方法
2018/10/16 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
python中os包的用法
2020/06/01 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
小学门卫岗位职责
2013/12/17 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
综合素质评价自我评价
2015/03/06 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript