最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

vue项目实战中遇到的坑以及解决方法

来源:懂视网 责编:小采 时间:2020-11-27 20:18:55
文档

vue项目实战中遇到的坑以及解决方法

vue项目实战中遇到的坑以及解决方法:坑1. 用webpack打包后访问index.html出现资源加载404问题解决方案:config中index.js中,build对象中的assetsPublicPath属性的层级需要由 / 调整为 './' 1 build: { 2 env: require('./prod.env'
推荐度:
导读vue项目实战中遇到的坑以及解决方法:坑1. 用webpack打包后访问index.html出现资源加载404问题解决方案:config中index.js中,build对象中的assetsPublicPath属性的层级需要由 / 调整为 './' 1 build: { 2 env: require('./prod.env'

坑1. 用webpack打包后访问index.html出现资源加载404问题

解决方案:config中index.js中,build对象中的assetsPublicPath属性的层级需要由 ‘/’ 调整为 './'

 1 build: { 2 env: require('./prod.env'), 3 index: path.resolve(__dirname, '../dist/index.html'), 4 assetsRoot: path.resolve(__dirname, '../dist'), 5 assetsSubDirectory: 'static', 6 assetsPublicPath: './', 7 productionSourceMap: false,12 productionGzip: false,13 productionGzipExtensions: ['js', 'css'],18 bundleAnalyzerReport: process.env.npm_config_report19 }
 1 dev: { 2 env: require('./dev.env'), 3 port: 8080, 4 autoOpenBrowser: true, 5 assetsSubDirectory: 'static', 6 assetsPublicPath: '/', 7 proxyTable: {}, 8 // CSS Sourcemaps off by default because relative paths are "buggy" 9 // with this option, according to the CSS-Loader README10 // ()11 // In our experience, they generally work as expected,12 // just be aware of this issue when enabling this option.13 cssSourceMap: false14 }

原因:

开发环境的static文件夹是基于根目录的,所以直接用 ‘/’ 。例如这种格式:http://localhost:8080/static/img/logo.png。

大家应该都知道,webpack打包会自动把static文件夹打包进去,默认会生成一个dist文件夹作为生产环境文件的根目录,在dist里面才会生成static文件夹。因此生成的格式应该为http://localhost:8080/dist/static/img/logo.png。并不是基于根目录,所以 ‘/’ 肯定是找不到对应资源的。

介绍一下这几个属性的含义:

assetsRoot: webpack输出的目标文件夹路径

assetsSubDirectory: webpack编译输出的二级文件夹

assetsPublicPath: webpack编译输出的发布路径,比如:www.woshichihuo.com/eat 中的 /eat就是这个路径

坑2. 用webpack打包后本地访问index.html出现白屏,资源加载正常

解决方案:路由设置mode不要设置为history模式,默认还是hash。router文件夹下index.js文件中。

1 const router = new Router({2 // mode: 'history',3 routes: [4 index,5 home6 ]7 })

如果需要history模式,请参考vue-router官方文档:

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

vue项目实战中遇到的坑以及解决方法

vue项目实战中遇到的坑以及解决方法:坑1. 用webpack打包后访问index.html出现资源加载404问题解决方案:config中index.js中,build对象中的assetsPublicPath属性的层级需要由 / 调整为 './' 1 build: { 2 env: require('./prod.env'
推荐度:
标签: VUE 解决方法 以及
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top