vue的挖坑和爬坑之css背景图样式终极解决方法

原问题

#wrapper{
        width:100%;
        height:100%;
        position:fixed;
        background-image:url(./img/open_bg.jpg)
    }

在.vue文件中的CSS样式中,使用背景图

在webpack打包后,路径不对,怎么办呢?

回答

如果你用了vue-cil,那么在build目录下找到utils.js中的ExtractTextPlugin.extract({}),里面添加下面这个属性就完美解决了publicPath: '../../'

解释

文件最终会打包压缩为js。当运行的时候,css中的相对路径指向已经发生变化指向了根目录,所以出现加载错误的问题。

下面是这个插件的解释。

extract-text-webpack-plugin

作用:该插件的主要是为了抽离css样式,防止将样式打包在js中引起页面样式加载错乱的现象。

插件参数:该插件有三个参数意义分别如下:

use:指需要什么样的loader去编译文件,这里由于源文件是.css所以选择css-loader

fallback:编译后用什么loader来提取css文件

publicfile:用来覆盖项目路径,生成该css文件的文件路径

来源

https://www.zhihu.com/question/39953434