@vue/cli3项目下,图片等静态文件引入问题

本文为作者原创,转载使用请附上原文链接
在使用@vue/cli3构建项目下,图片等静态资源引入问题往往遇坑,下面就对这些问题进行梳理并解决。

官方文档下介绍是这样的

静态资源可以通过两种方式进行处理:
1.在 JavaScript 被导入或在 template/CSS 中通过相对路径被引用。这类引用会被 webpack 处理。
2.放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理。

也就是说,静态文件的存放目录有两种,assets和public文件夹。而这两个文件夹中的资源在项目打包运行之后的状态却又是不同的。

以图片为例

  1. assets中的资源会经过webpack处理,在文件名上加上八位哈希值并存放在打包后根目录下的img目录下。
  2. public中的资源不会经过webpack的处理,而是直接放在打包后项目根目录下

在这两种情况下,项目开发中对静态资源的引用方式也是不同的。

也以图片为例,假设有张图片为 1.png

  • 在图片存放在assets中情况下,因为该目录下文件在项目打包后会在文件名中加加上八位哈希值,所以在img标签使用属性绑定对src进行赋值情况下(直接标签属性引入可以无视),不能直接使用字符串做为src路径,这回导致项目打包运行过程中在该路径下找不到该文件。应使用require方法引入
  • 在图片存放在public目录下时,因为该目录下静态文件是直接拷贝存放在根目录中的并不会修改其文件名,所以可以使用字符串作为其文件引入路径。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,633评论 0 17
  • 前端将大型项目分成一个个单独的模块,一般封装好的每个模块都会实现一个目的明确的完成的功能。如何处理这些模块以及模块...
    pixels阅读 3,453评论 1 14
  • 1. 新建一个文件夹,命名为 webpack-cli , webpack-cli 就是你的项目名,项目名建议使用小...
    鲁大师666阅读 1,536评论 1 3
  • 这个世界也许没有所谓的善与恶,我们只是想让自己,或许还有自己爱的人,过得好一些,只是每个人的方法或才能不同,这也就...
    书才阅读 233评论 0 0
  • 2. 今晚和你去看星星吧 松鼠微笑着说 泥土里长出了嫩芽 你要照顾她 怎么可以拒绝松鼠 你在沉思什么呢 松鼠微笑着...
    霡霂xichen阅读 118评论 0 1