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 相关文章推荐
解javascript 混淆加密收藏
Jan 16 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
JavaScript对象学习经验整理
Oct 12 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
jQuery ajax serialize() 方法使用示例
Nov 02 Javascript
jQuery实现的自适应焦点图效果完整实例
Aug 24 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
vue如何将v-for中的表格导出来
May 07 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 Javascript
在vue中created、mounted等方法使用小结
Jul 21 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常用的文件操作函数经典收藏
2013/04/02 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
基于node.js的快速开发透明代理
2010/12/25 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
轮播图组件js代码
2016/08/08 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
python的dict判断key是否存在的方法
2020/12/09 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
市场部规章制度
2014/01/24 职场文书
责任书格式
2015/01/29 职场文书
乱世佳人观后感
2015/06/08 职场文书