作为NUXT的新手,我对资产和静态文件夹之间的区别有点困惑。
在关于此文件夹的documentation中,它表示:
每一个小于1 KB的文件都将被内联为base-64数据URL。2否则,图像/字体将被复制到其对应的文件夹(在.nuxt目录下)中,文件名中包含版本哈希以便于缓存。
以及:
如果不想使用assets目录中的Web打包资源,则可以在项目根目录中创建并使用静态目录。
这些文件将由Nuxt自动提供,并可在您的项目根URL中访问。
此选项对robots.txt、sitemap.xml或CNAME(例如GitHub页面)等文件很有用。
如果我理解正确的话,静态文件夹中的文件应该是名称不应更改的文件(例如,第三方消费者的文件),而资产文件夹中的文件应该是名称更改后我不在乎的文件(例如,我在页面上使用的文件)。
为什么不把所有的文件都放在静态文件夹中呢?
robots.txt和robots.png之间有什么区别?
有关这些目录的最佳做法是什么?
谢谢
3条答案
按热度按时间mutmk8jj1#
assets
文件夹的内容将由webpack处理,如果您使用CSS的预处理器,如SASS,SCSS或Stylus,它将转换为通用CSS。或者您可以将图像放在该文件夹中,它也将由webpack优化用于生产。对于
static
文件夹,它只是一个地方,你可以把你所有的静态资产,如背景或滑块的图像。它从来没有触及的webpack。qoefvg9y2#
在assets document中,关于这些文件夹,它说:
assets
目录包含未编译的资产,如Stylus或Sass文件,图像或字体。注意:
assets
文件夹的内容将由webpack处理,如果您使用CSS的预处理器,如SASS,SCSS或Stylus,它将转换为通用CSS。在static document中,关于这些文件夹,它说:
static
目录直接Map到服务器根目录(),并且包含可能不会更改的文件。所有包含的文件将由Nuxt自动提供,并且可以通过项目根URL访问。xt0899hw3#
在处理模板代码或css中引用的视频或背景图像时,请始终使用Static文件夹,否则Nuxt将不会显示它。如果您尝试引用视频的路径,例如视频背景,并且您在Assets中有它,Nuxt将不会显示它。如果您将相同的视频放在Static中并引用它,如
{ myVideo: 'img/myvideo.mp4' }
,则Nuxt将显示它。注意:您需要从路径中省略“static”,因此如果您有
static/img/myvideo.mp4
,则应始终引用为/img/myvideo.mp4