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通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
vuex的使用步骤
Jan 06 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
vue3中的组件间通信
Mar 31 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 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
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
PHP文件上传类实例详解
2016/04/08 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
可输入的下拉框
2006/06/19 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
解决python super()调用多重继承函数的问题
2019/06/26 Python
Python中的类与类型示例详解
2019/07/10 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
幼儿园健康教育方案
2014/06/14 职场文书
素质教育标语
2014/06/27 职场文书
交通安全责任书范本
2014/07/24 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
超市店长竞聘书
2015/09/15 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python