在VueJS中将图像存储在正确的位置-公用文件夹还是资产文件夹?

时间:2020-07-11 06:47:29

标签: javascript node.js vue.js

我已经使用Vue一段时间了,我注意到我可以将项目图像存储在assets文件夹或public文件夹中。

要访问Vue中assets文件夹中的图像,可以执行:src="require('@/assets/images/myimage.jpg')"

要访问Vue中public文件夹中的图像,可以执行:src="./static/images/myimage.jpg"

存储Vue项目图像的合适位置是什么?

使用这两种方法有什么含义?

它们如何影响我的项目?

3 个答案:

答案 0 :(得分:3)

通常将公用文件夹中的所有资料直接复制到/ dist中。例如:favicon.ico最终出现在您的/ dist文件夹中,名称为... favicon.ico。


资产文件夹通常是您将要导入的图像/视频/字体/ svgs等存储在vue文件中的位置。这些文件以哈希名称(例如:5j2i35j2o251hia.png)作为文件结尾在您的/ dist文件夹中。


/ assets文件夹中没有明确导入的任何资产都不会存储在/ dist文件夹中,以免最终文件大小膨胀。

希望这会有所帮助。

答案 1 :(得分:2)

基于正式的vue文档,资产文件夹中的所有内容都将由Webpack处理,而公用文件夹中的所有内容仅被复制但不通过Webpack进行:https://cli.vuejs.org/guide/html-and-static-assets.html#static-assets-handling

因此,如果您想在构建过程中利用Webpacks优化功能(您肯定希望),可以将它们放入资产中。 我还将所有img放在资产文件夹中,而在公用文件夹中只有与pwa相关的图像和图标。

答案 2 :(得分:1)

https://cli.vuejs.org/guide/html-and-static-assets.html#static-assets-handling

两者之间的差异是相对路径(最终为require('image'))与绝对路径。通常,在构建过程中绝对路径不会通过webpack传递。而且,如果您优化absolute path的图片,则什么也不会发生。