vue填坑之webpack run build 静态资源找不到的解决方法


Posted in Javascript onSeptember 03, 2018

vue cli搭建的项目,在本地测试调试都OK,运行npm run dev之后运行正常,今天放到服务器上跑,结果RD说找不到打包后的静态资源,浏览器控制台错误代码404

问了RD,因为服务器上线方式的调整,不会指定具体项目路径因此,https://bigdata.yiche.com/static/css/app.149f36018149fcbe537f02cafdc6f047.css 这个文件找不到,看看我们正常打包好的目录:

vue填坑之webpack run build 静态资源找不到的解决方法

正确的访问路径是:https://bigdata.yiche.com/deploy/static/css/app.149f36018149fcbe537f02cafdc6f047

config/index.js配置如图:

vue填坑之webpack run build 静态资源找不到的解决方法

思来想去之前打包好的文件直接扔到nginx就可以使用,实在不清楚原因。于是找到我们的美女组长姐姐来帮忙,分分钟改了config/index.js下的几行代码,如图:

vue填坑之webpack run build 静态资源找不到的解决方法

这里需要注意assetsPublicPath:'/deploy/' 末尾的斜杠一定要加,不然部分js打包后会出现https://bigdata.yiche.com/deploystatic/css/app.149f36018149fcbe537f02cafdc6f047这样的情况。

看下打包好的目录,对比之后会发现多了一层deploy目录,这个多出来的路径是index和assetsRoot这两个设置决定的

vue填坑之webpack run build 静态资源找不到的解决方法

而assetsPublicPath则是确定打包后的文件引用路径:看看打包后的index.html文件的js和css资源的引用路径:

vue填坑之webpack run build 静态资源找不到的解决方法

对比之前默认配置的路径:

vue填坑之webpack run build 静态资源找不到的解决方法

好了再放到服务器上,问题解决了。

问题总结:

原因是服务器没有指定项目目录,因此需要在打包时对打包文件添加访问的项目名称,所以在配置打包路径是要加上项目名称,下面是vue cli默认webpack config/index.js的配置解释

var path = require('path')

module.exports = {
 build: { // production 环境
 env: require('./prod.env'), // 使用 config/prod.env.js 中定义的编译环境
 index: path.resolve(__dirname, '../dist/index.html'), // 编译输入的 index.html 文件
 assetsRoot: path.resolve(__dirname, '../dist'), // 编译输出的静态资源路径
 assetsSubDirectory: 'static', // 编译输出的二级目录
 assetsPublicPath: '/', // 编译发布的根目录,可配置为资源服务器域名或 CDN 域名
 productionSourceMap: true, // 是否开启 cssSourceMap
 // Gzip off by default as many popular static hosts such as
 // Surge or Netlify already gzip all static assets for you.
 // Before setting to `true`, make sure to:
 // npm install --save-dev compression-webpack-plugin
 productionGzip: false, // 是否开启 gzip
 productionGzipExtensions: ['js', 'css'] // 需要使用 gzip 压缩的文件扩展名
 },
 dev: { // dev 环境
 env: require('./dev.env'), // 使用 config/dev.env.js 中定义的编译环境
 port: 8080, // 运行测试页面的端口
 assetsSubDirectory: 'static', // 编译输出的二级目录
 assetsPublicPath: '/', // 编译发布的根目录,可配置为资源服务器域名或 CDN 域名
 proxyTable: {}, // 需要 proxyTable 代理的接口(可跨域)
 // CSS Sourcemaps off by default because relative paths are "buggy"
 // with this option, according to the CSS-Loader README
 // (https://github.com/webpack/css-loader#sourcemaps)
 // In our experience, they generally work as expected,
 // just be aware of this issue when enabling this option.
 cssSourceMap: false // 是否开启 cssSourceMap
 }
}

本人个人理解,如有不对欢迎指出!

以上这篇vue填坑之webpack run build 静态资源找不到的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery动态加载js/css文件方法(自写小函数)
Oct 11 Javascript
基于jQuery创建鼠标悬停效果的方法
Mar 07 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
js中通过getElementsByName访问name集合对象的方法
Oct 31 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
Javascript快速实现浏览器系统通知
Aug 26 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
微信小程序实现日历功能
Nov 27 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
微信小程序实现手势滑动卡片效果
Aug 26 Javascript
vue element 中的table动态渲染实现(动态表头)
Nov 21 Javascript
Element-ui upload上传文件限制的解决方法
Jan 22 Javascript
webpack4 处理CSS的方法示例
Sep 03 #Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 #Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 #Javascript
webpack4 处理SCSS的方法示例
Sep 03 #Javascript
解决vue打包css文件中背景图片的路径问题
Sep 03 #Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
Sep 03 #Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 #Javascript
You might like
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
js实现一键复制功能
2017/03/16 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python 重定向获取真实url的方法
2018/05/11 Python
六行python代码的爱心曲线详解
2019/05/17 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
python自动化发送邮件实例讲解
2021/01/04 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
人代会标语
2014/06/30 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
Golang ort 中的sortInts 方法
2022/04/24 Golang
nginx之queue的具体使用
2022/06/28 Servers