# 静态资源

# 原样复制的静态资源

一些原生组件需要用到的静态资源,或者不需要 Webpack Loader 处理的静态资源,编译构建的时候需要原样复制,它们一般存放在 public/res 目录下,编译构建后,它们将被复制到 res 目录下。

如,public/res/img/logo.png 文件, 在 html 中这样使用

<img src="res/img/logo.png" alt="logo" />

因为 CSS 中资源的加载需要经过 Loader 处理,因此不推荐在 CSS 中引用 public/res 目录下的静态资源文件。如果有非使用不可的理由的话,那么可以通过下面这样实现引用

.logo {
  background-image: url('~@/../public/res/img/logo.png');
}

但是这样,在打包编译时会将该文件从 res/img 目录下复制一份到 img 目录下。

# 经过 Webpack Loader 加载的静态资源

.vue.js 文件中,加载静态资源文件需要经过 Loader 的处理,它们一般存放在 src/assets 目录下。

如,src/assets/img/logo.png 文件, 在 .vue, .js 中这样使用

<template>
  <img alt="Vue logo" :src="logo" />
</template>

<script>
import logo from '@/assets/img/logo.png'
export default {
  name: 'demo',
  data() {
    return {
      logo
    }
  }
}
</script>

CSS 中这样使用

.logo {
  background-image: url('~@/assets/img/logo.png');
}