prod环境publicPath为相对路径时,css中引用的url路径错误

html-css09

prod环境publicPath为相对路径时,css中引用的url路径错误,第1张

更改config/index.js配置文件build.assetsPublicPath为 './'

在App.vue的 <style>中加一个background: url('./asssets/images/xxx.png')之类相对路径引用的样式

此时进行打包命令

你会发现提取出来的 css 中 url() 中图片的路径是 static/img/xxx.png 这样的,用浏览器打开index.html将会有 xxxxxxx/static/css/static/img/xxx.png 这个图片 404 的报错

主要是需要单独为 css 配置 publicPath ,更改 build/utils.js 文件中 ExtractTextPlugin 插件的 options 配置:

我想你应该是不太熟悉css中的相对路径和绝对路径:\x0d\x0a"."代表当前所在目录,相对路径。如:文本或;\x0d\x0a".."代表上一层目录,相对路径。如:文本或;\x0d\x0a"../../"代表的是上一层目录的上一层目录,相对路径。如:;\x0d\x0a"/"代表根目录,绝对路径。如:文本或;\x0d\x0a"D:/abc/"代表根目录,绝对路径。\x0d\x0a在使用相对路径时,我们用符号“.”来表示当前目录;用符号“..”来表示当前目录的父目录。\x0d\x0a所以,这里应该是background:url(../../images/bgs/backg.png)0-418pxrepeat-x