Vue/Cli4 引用静态图片
前言
本教程适用于 Vue-Cli v3 v4
网上教程零零散散,所以这里我作一下总结,可能与您的代码有所偏差,希望指出,但是勿喷.谢谢!
准备
由于安的包比较多,所以,在我印象中这个教程安装这两个就行了
经过测试,这两个包可以不用安装
cnpm i node-sass
cnpm i sass-loader
干正事
首先找到我们根目录[node_modules 同级]下的vue.config.js(没有的话自己创建)
// vue.config.js const path = require('path'); function resolve(dir) { //__dirname为项目根目录,node的express方法中也有使用,join为javascript连接符 return path.join(__dirname, dir) } module.exports = { // publicPath: process.env.NODE_ENV === 'production' ? '/public/' : '/', // assetsDir: "assets", // 上面两行千万别设置,不然使用nginx部署的时候,会报错!!!!!!!!!!!! // chainWebpack这里是比较重要的 chainWebpack: (config) => { config.resolve.alias .set('@', resolve('src')) .set('assets', resolve('src/assets')) }, pluginOptions: { // 假设报 style-resources-loader错误,请安装style-resources-loader; 'style-resources-loader': { preProcessor: 'sass', patterns: [] } } }
这里说明一下chainWebpack:
图片一般保存在public或src/assets文件夹里面,这里set('@', resolve('src'))
做的事情就是将@/assets
变成成src/assets
.来到我们的Style标签下面
<style scoped lang='scss'> /* 在标签中设置 lang='sass' */ .demo { background: url("~assets/img/BgImg.png") no-repeat; } </style>
"~assets/img/BgImg.png"
url前面必须带有一个~
,否则无法访问到我存放在assets里面的资源,后面的
assets
根据我们在 vue.config.js 中的chainWebpack
set('assets', resolve('src/assets'))
解析到了src/assets
目录,故访问到了我存在assets/img/BgImg.png中的资源图片.
后记
这篇教程可能有很多不怎么专业的用词,请看到的大佬帮忙指出.谢谢!
赞 (0)