引用图片资源的几种方式

简介: 基础

1、config配置

在vue.config.js中通过config.resolve.alias设置别名,通过css设置scss的全局变量

  module.exports = {
      lintOnSave: true,
      baseUrl: './',
      productionSourceMap: true,
      chainWebpack: config => {
          config.resolve.alias
              .set('@', resolve('src'))
              .set('views', resolve('src/views'))
              .set('assets', resolve('src/assets'))
              .set('public', resolve('public'))
              .set('styles', resolve('src/styles'))
              .set('static', resolve('public/static'))
              .set('components', resolve('src/components'));
      },
      css: {
          loaderOptions: {
              sass: {
                  data: `@import "~@/styles/variables.scss";`
              }
          }
      }
  };

1.1、template模板内引用图片

通过config.resolve.alias设置的别名在Vue的template模板和style样式内使用前面需加上~,告诉加载器它是一个模块,而不是相对路径

  <img src="~static/images/logo.png" alt="">
  <img src="~assets/logo.png" alt="">

1.2、style样式内引用图片

 .bg {
      background: url("~static/images/logo.png");
  }
  .bg1 {
      background: url("~assets/logo.png") no-repeat;
   }

2、script脚本内引用图片

  <img :src=imgUrl1>
  <img :src=imgUrl2>
  <img :src=imgUrl3>
  <img :src=imgUrl4>

script脚本

  data() {
      return {
          //引用public文件夹下的图片
          imgUrl1: `static/images/logo.png`,
          imgUrl2: `./static/images/logo.png`,
          imgUrl3: `../../static/images/logo.png`,
          //引用assets文件夹下的图片
          imgUrl4: require("assets/logo.png"),
      }
  }
- data中引用public/static中的图片只能使用static/images/logo.png或者./static/images/logo.png或者…/…/static/images/logo.png这三种方式引用图片

  **注意:**这里的static不是别名,并且在script中引入static中的图片时也不能使用别名。

- data中引用assets图片时,必须使用require(‘xxx’)方式引用,否则会当字符串处理而无法显示图片。

  **注意:**这里assets是别名,也可以通过相对路径使用

附:为什么不能public/static/images/logo.png引入呢?

可能是因为在执行npm run build后,新生成的dist文件内没有public文件夹,而是会把public文件夹下的所有文件或文件夹放到dist根目录下。此时就找不到public路径了,因为public文件夹下有static文件夹,所以可以使用static/xxx引用图片

3、script脚本内引用资源

在script脚本中通过import引用其他资源时,则直接使用别名,不需加~

  import demo from 'views/Demo'; //引用其他组件
  import 'styles/Demo.css'; //引用样式

style中引用全局变量

通过在vue.config.js的css中加载Sass的全局变量类variables.scss,则在任意一个Style样式内都可以引用variables.scss内定义的属性,如
variables.scss类

 $RED:#f00;

style样式

  .global_style_bg {
      background: $RED;
  }
注意:这种定义的全局的属性,只能在style样式内使用, 在template和script都不可使用

4、自定义变量

在css中我们可以给body样式设置自定义变量来让整个项目使用
css自定义变量的语法是:--(两个减号)
变量使用的语法是:var(--)

  body {
      /* 定义公共色值 */
      --F00: #F00;
      /* 定义默认字体大小 */
      --size: 18px;

      /* 可直接使用 */
      font-size: var(--size);
      --bg: var(--F00);
  }

自定义变量的使用

style样式:

  .style_bg {
      background-color: var(--F00);
      font-size: var(--size);
  }

script脚本

  data() {
       return {
           bgColor: 'var(--00F)',
       }
  },
目录
相关文章
|
3月前
flutter 引用图片资源遇到的问题
flutter 引用图片资源遇到的问题
32 1
|
3月前
|
前端开发
CSS样式引用方式的区别
CSS样式引用方式的区别
|
3月前
|
测试技术 API C++
C/C++ 实现动态资源文件释放
当我们开发Windows应用程序时,通常会涉及到使用资源(Resource)的情况。资源可以包括图标、位图、字符串等,它们以二进制形式嵌入到可执行文件中。在某些情况下,我们可能需要从可执行文件中提取自定义资源并保存为独立的文件。在这篇博客文章中,我们将讨论如何使用C++和WinAPI实现这个目标。首先,让我们考虑一个场景:我们有一个 Windows 应用程序,其中包含了一个自定义的二进制资源比如默认的配置文件,我们希望将这个资源提取出来并保存为一个独立的文件以用于初始化程序配置项。为了实现这个目标,我们可以使用`Windows API`提供的相关函数,来完成对资源的释放工作。
76 0
|
存储 安全 编译器
C++中引用的基本内容
C++中引用的基本内容
144 1
|
小程序 C#
C#释放内嵌的资源文件到指定位置(几种情况的讨论)
C#释放内嵌的资源文件到指定位置(几种情况的讨论)
431 0
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
410 0
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
|
缓存 Swift iOS开发
iOS开发swift版异步加载网络图片(带缓存和缺省图片)
iOS开发swift版异步加载网络图片(带缓存和缺省图片)
453 0
|
存储 缓存 Java
浅谈 Glide - BitmapPool 的存储时机 & 解答 ViewTarget 在同一View显示不同的图片时,总用同一个 Bitmap 引用的原因
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/developer/user/1148436/activities 这两天在改造我的私人APP 非ROOT版微信自动回复, 使之可以多开的时候,碰到一个这样的问题。
1523 0