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实现原生ajax的几种方法介绍
Sep 21 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
Dec 25 Javascript
jQuery在iframe中无法弹出对话框的解决方法
Jan 12 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
Feb 10 Javascript
JavaScript匿名函数用法分析
Feb 13 Javascript
js剪切板应用clipboardData实例解析
May 29 Javascript
Google 地图控件集详解及实例代码
Aug 06 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
vue项目接口域名动态获取操作
Aug 13 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 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伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
javascript操作css属性
2013/12/30 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
js获取域名的方法
2015/01/27 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
python使用str & repr转换字符串
2016/10/13 Python
Python 基础教程之包和类的用法
2017/02/23 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python中的类与类型示例详解
2019/07/10 Python
关于Python错误重试方法总结
2021/01/03 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
Why we need EJB
2016/10/20 面试题
信息技术培训感言
2014/03/06 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
小程序自定义轮播图圆点组件
2022/06/25 Javascript