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仿静态分页实现方法
Aug 04 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
jQuery操作属性和样式详解
Apr 13 Javascript
js对象浅拷贝和深拷贝详解
Sep 05 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
解决AngualrJS页面刷新导致异常显示问题
Apr 20 Javascript
vue+express 构建后台管理系统的示例代码
Jul 19 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
深入解读VUE中的异步渲染的实现
Jun 19 Javascript
vue抽出组件并传值实例
Jul 31 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
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python学生信息管理系统修改版
2018/03/13 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
基于Python实现简单学生管理系统
2020/07/24 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
Python里面如何实现tuple和list的转换
2012/06/13 面试题
生产部经理岗位职责
2013/12/16 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
对公司合理化的建议书
2014/03/12 职场文书
《赶海》教学反思
2014/04/20 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
同学聚会通知短信
2015/04/20 职场文书
2015年女工委工作总结
2015/07/27 职场文书
关于感恩的作文
2019/08/26 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript