我所了解的url-loader

618 阅读1分钟

我们现在的项目把图片放到static下面如图:

跑起来之后是这样的:

咦?图片怎么没有被url-loader编译呢????

npm run build 之后是这样的:


也没有打包到dist的static里面

我期待的是这样的:


我的第一反应是<img src="static/logo.png">我们的图片放到static下面了,导致webpack编译不到~到网上大量搜集文章:

lvyongbo.gitbooks.io/vuejs-templ…

blog.csdn.net/jian_xi/art…

都在告诉我放在static里面的东西不能被webpack编译!!

但是现在我们大量的图片都放到static下面了咋整???

然后搜到一句话:

前缀为 ~ 的 URL 会被作为模块引用, 类似 require('some-module/image.png')。 如果你想用 Webpack 管理模块,需要加上此前缀。例如,使用别名解析 assets ,这样使用 来确保有效。

于是路径改为<img src="~static/logo.png">

这样build之后图片被url-loader编译了!!!

so,图片以怎样的路径加载才会被url-loader编译呢?

后来我把路径改为<img src="../static/logo.png">也能被url-loader编译!!!!

所以我总结了要想被url-loader编译,路径是下面两种:

  1. <img src="../static/logo.png"> 相对路径
  2. <img src="~static/logo.png"> 类似 require('static/logo.png')

我一开始理解的因为 图片放在static所以编译不到的是错误的理解!!!!

我存在的问题是为啥这两种写法url-loader可以编译

而<img src="static/logo.png">这样写编译不到呢???

第二个问题是~是怎么实现的?????


备注:第一次写,很多理解不准确的,请各位帮忙指出,不胜感激!!!!