解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题

 Vue项目运行npm run build后会生成一个dist文件夹,咱们通常都是把这个文件夹部署到服务器上。dist文件夹里边有一个static文件和一个index.html页面,这个index就是最后单页面的最终文件。css

    问题一:我在打包完成后,打开index.html文件发现地址并无携带路由。html

   

    这样的话页面就是空白了,由于没有组件被添加到页面中。打开F12会看到一堆的红色failed请求。打开请求地址是这样的。web

    进入D盘就开始寻找static文件夹固然是找不到的。既然知道了是打包以后寻找文件的地址错误,就去config文件夹下的index.js中寻找问题。index.js中的build命令的配置有一个属性叫assetsPublicPath,它的值为‘/’。意思是根目录,这时会从index.html所在的硬盘的根目录下开始查找,天然没法找到。解决办法:npm

    改成‘./’这时就再也不是绝对路径的根目录了,而是改成了相对路径,同目录下进行查找。再次打包,页面基本正常。服务器

    问题二:我再次打包后,页面能够正常打开。可是页面上的一些图片请求失败。ui

    我这里请求失败的都是背景图片,并且只是某一些失败。我一直有一个疑惑就是为何同一个css文件中的背景图片请求有的成功有的失败,要知道个人图片都是放在同一个文件夹下边的。目前这个疑惑尚未解决。.net

    打开某一个失败的请求,咱们会发现请求的路径是这样的。htm

    

    也就是说这个css文件是从当前文件夹下往里寻找static/img/XXX.png,要知道static文件夹是在dist根目录下边的,所以,咱们须要修改build的全局配置,改变css文件的文件请求路径。css文件在static里边的css文件夹中,所以须要先‘../../’出到dist根目录下,而后再static/img/XXX.png,就能够正确找到对应的图片文件。blog

    解决办法:图片

    修改build文件夹下边的utils.js文件。

        再文件相同的if语句下添加下图中选中的代码。

    

相关文章
相关标签/搜索