我已经使用Vue一段时间了,我注意到我可以将项目图像存储在assets
文件夹或public
文件夹中。
要访问Vue中assets
文件夹中的图像,可以执行:src="require('@/assets/images/myimage.jpg')"
要访问Vue中public
文件夹中的图像,可以执行:src="./static/images/myimage.jpg"
存储Vue项目图像的合适位置是什么?
使用这两种方法有什么含义?
它们如何影响我的项目?
答案 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
的图片,则什么也不会发生。