vue 的history 模式是很有必要的,可以删掉路径中的# 号,尤其是做微信开发,微信那边会自动把#给除掉。所以一般都设置成history的模式。但设置成history 的模式,会导致很多问题。
最近我就碰到一个这样的问题:如题目 。
仔细看上图出错的路径,这个路径刷新会在当前路径下找 js,很明显这个二级路由的路径下是没有的 static的,所以报错。
再看下我的打包配置:
以上 是错误的配置。
后来,查阅资料才知道,对于hash模式,根路径是固定的,就是项目的根目录,但是history模式下,以 /
开头的嵌套路径会被当作根路径,所以配置assetPublicPath为“./”引入文件或者不配置 assetPublicPath,就会找不到文件了,因为文件本身就是在项目根目录下的,并不在嵌套路径这个目录下。所以把assetPublicPath 配置为‘/’,让他在根路径下寻找资源,即可解决此问题。