问题:vue生产环境打包后访问页面报错Unexpected token <
项目执行npm run dev和npm run build-dev(开发环境打包)都没有问题
当使用npm run build-prod(生产环境)打包,发布之后查看报错:
解决过程如下:
此处所采用的的是vue-cli2.x
1.修改文件config/index.js,修改build配置中的内容
assetsSubDirectory: './static',
assetsPublicPath: './',
如上修改后打包可以打开不在报错,但是找不到图片以及文字了
2.修改build/utils.js文件,修改publicPath
publicPath: '../../'
重新打包后,访问正常
未查明情况
用过与该项目相同的脚手架,搭建了两个项目,然而另外的项目却没有该问题,暂未发现问题所在。
问题继续
本项目Nginx配置中存在前置web-pmms
最终还原了上方的三处修改,将config/index.js中assetsPublicPath做如下修改
总结:
assetsPublicPath是配置为相对路径还是绝对路径,取决于你打包后前端资源怎么发布部署
vue-cli2.x版本
情况1:如果应用配置在一个域名的根路径上,例如http://10.0.0.106:8080/,则直接配置assetsPublicPath:'/';
情况2:如果应用配置在一个域名的子路径上,例如http://10.0.0.106:8080/myapp,则应设置assetsPublicPath:'/myapp/';
这个值也可以设置为空字符串('')或相对路径('./'),这样所有资源都会被链接为相对路径,这样打包后的文件可以被部署在任意路径。
vue-cli3.x版本
需要在vue.config.js 添加baseUrl:‘xxx’
vue-cli 4.x版本
需要在 vue.config.js 中修改 publicPath:'xxx'