打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Vue/Cli4 引用静态图片

前言

本教程适用于 Vue-Cli v3 v4

网上教程零零散散,所以这里我作一下总结,可能与您的代码有所偏差,希望指出,但是勿喷.谢谢!

准备

由于安的包比较多,所以,在我印象中这个教程安装这两个就行了
经过测试,这两个包可以不用安装

cnpm i node-sass
cnpm i sass-loader

干正事

  1. 首先找到我们根目录[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.

  2. 来到我们的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中的资源图片.

后记

这篇教程可能有很多不怎么专业的用词,请看到的大佬帮忙指出.谢谢!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一行可以让项目启动快 70% 以上的代码
vue 脚手架初始化项目中配置文件webpack.base.conf.js代码含义
vue-cli脚手架初始化项目简要分析
vue-cli4配置文件路径别名
. vue 3.0 vue.config.js
vue使用webpack打包失败
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服