在做VUE-cli WebPack脚手架项目打包完成后,在服务器上运行发现,有些js中定义的变量找不到,css,背景图片资源等都找不到,原来发现项目打包后的CSS和JS的引用路径是绝对路径,项目部署后会将静态当成根目录,就造成了文件引用路径的错误,解决方法是通过修改配置文件,将绝对路径改为相对路径,从而达到资源的相对引用。
一。‘/’指的是项目的根目录 ,’./’指的是当前目录
1.publicPath 并不会对生成文件的路径造成影响,主要是对你的页面里面引入的资源的路径做对应的补全,常见的就是css文件里面引入的图片
2.assetsPublicPath属性作用是指定编译发布的根目录
具体操作如下:
1.打开webpack.prod.conf.js;
2.在output模块中添加 publicPath: './' ,如下图所示:
2.修改打包后背景图片的引用路径
资源内的图片是通过css加载的,CSS代码如:background:url(../ assets / img-bg / buttonbg.png)no-repeat;
但是打包过后的CSS变成了背景:url(../../ static / img / buttonbg.68979b3.png)no-repeat;我们需要修改配置文件,是的CSS代码打包后,资源引用路径还是相对路径;
解决办法:
1.打开build文件夹下的utils.js ;
2.在下图位置添加 publicPath:” ../../
第二个问题:router-view中的内容显示不出来。路由history模式。
这个坑是当你使用了路由之后,在没有后端配合的情况下就手贱打开路由history模式的时候,打包出来的文件也会是一片空白的情况,
很多人踩这个坑的时候花了很多时间,网上的教程基本上都是说的第一个坑,这个坑很少有人提起。
解决:// mode: 'history',//将这个模式关闭就好
参考:https://blog.csdn.net/qq_41725450/article/details/83104956 https://www.cnblogs.com/chenzeyongjsj/p/8079136.html