多级路由请求js文件路径不对的解决方法

一、问题描述

最近由于项目的缘由开始学习vue,看了几天教程而后开始撸项目。撸的过程也挺顺利,撸了一个多月项目要上线的时候却出现了问题——用history模式打开网站的时候,从导航点到具体的内容页是正常的,可是一刷新内容页就空白了。html

好比:打开网站首页是正常的 http://localhost:8888/ 刷新也没问题。vue

经过鼠标点击,从导航栏进入商家详情页的某个项目也是正常的 http://localhost:8888/Business/ResetBusiness 可是刷新下页面就空白了。控制台报错以下。webpack

点进去错误查看,app.js中居然都是html代码web

怎么会这样子,html怎么会被打包到了js中。为此我查了很久,感受是打包工具出了问题,可是vue-cli的打包工具很复杂,具体是哪里,还真很差找。vue-cli

后来经大佬提醒,查了下network,发现app.js的请求路径有问题。请求路径以下segmentfault

 

这是不对的,app.js的请求路径居然多了一个Business。而打包后的app.js是在根目录的,若是用相对路径请求的话,确定是请求不到的。app的正确地址就是应该是这个才对。http://localhost:8888/app.jsapp

2. 找缘由

发薪问题,下一步就是开始找缘由,因为对vue的不太熟,这个过程真是耗费了很长时间,这中间也请教了不少vue的大佬,而后大佬们也没有找到问题所在。可怕的是他们都没有遇到过这个问题。工具

找了一两天,终于被我找到缘由了。是由于以前被一篇vue教程误导了。这个教程说要修改webpack.base.config.js 中build项的assetsPublicPath 为相对路径学习

 

坑爹啊,我想骂楼主的心都有了。那篇教程在这里。http://www.javashuo.com/article/p-wfmhtzdr-gr.html网站

3.解决办法

把assetsPublicPath 改成绝对路径 '/' 就能够了。 就这么简单。

相关文章
相关标签/搜索