vue填坑之webpackrunbuild静态资源不到的解决⽅法vue cli搭建的项⽬,在本地测试调试都OK,运⾏npm run dev之后运⾏正常,今天放到服务器上跑,结果RD说不到打包后的静态资源,浏览器控制台错误代码404
config/index.js配置如图:
思来想去之前打包好的⽂件直接扔到nginx就可以使⽤,实在不清楚原因。于是到我们的美⼥组长来帮忙,分分钟改了config/index.js下的⼏⾏代码,如图:
看下打包好的⽬录,对⽐之后会发现多了⼀层deploy⽬录,这个多出来的路径是index和assetsRoot这两个设置决定的
⽽assetsPublicPath则是确定打包后的⽂件引⽤路径:看看打包后的index.html⽂件的js和css资源的引⽤路径:
对⽐之前默认配置的路径:
好了再放到服务器上,问题解决了。
问题总结:
原因是服务器没有指定项⽬⽬录,因此需要在打包时对打包⽂件添加访问的项⽬名称,所以在配置打包路径是要加上项⽬名称,下⾯是vue cli默认webpack config/index.js的配置解释
var path = require('path')
build: { // production 环境
env: require('./v'), // 使⽤ v.js 中定义的编译环境
index: solve(__dirname, '../dist/index.html'), // 编译输⼊的 index.html ⽂件
assetsRoot: solve(__dirname, '../dist'), // 编译输出的静态资源路径
2013年网游排行榜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('./v'), // 使⽤ v.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
// (github/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 静态资源不到的解决⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论