Playframework 播放框架:公共/vs应用程序/资产/
根据该文件,Playframework 播放框架:公共/vs应用程序/资产/,playframework,Playframework,根据该文件,public/目录应包含可按原样使用的静态资产,而可选的app/assets目录应包含需要处理的任何资产,例如,在构建阶段由minify编译器处理 对于SPA(单页应用程序),资产将包括JavaScript、CSS和图像文件。。。那么这是否意味着图像文件应该存储在public/images中,而JavaScript和CSS文件应该存储在app/assets/中 然后,我还需要集成一个第三方模块,该模块由小型JavaScript库和需要定制的非小型JavaScript文件组成。。。我应
public/
目录应包含可按原样使用的静态资产,而可选的app/assets
目录应包含需要处理的任何资产,例如,在构建阶段由minify编译器处理
对于SPA(单页应用程序),资产将包括JavaScript、CSS和图像文件。。。那么这是否意味着图像文件应该存储在public/images
中,而JavaScript和CSS文件应该存储在app/assets/
中
然后,我还需要集成一个第三方模块,该模块由小型JavaScript库和需要定制的非小型JavaScript文件组成。。。我应该如何处理这个问题?我是否应该在
public/
中保留标准的、已经缩小的资产,并将自定义JavaScript文件移动到app/assets/javascripts/
?我将所有内容都存储在公用文件夹中:css、JavaScript、图像,甚至更少的文件(本文档建议将其放在app/asset文件夹中)。它将自动复制到“资产”文件夹中,所有内容均按预期工作
对于您的第三方js库,如果它只是普通js(缩小或不缩小),请将其放在公用文件夹中。
如果有咖啡脚本/更少的文件,请考虑文档并将其全部放入资产文件夹。
如果文件位于公用文件夹中,请在模板中添加以下行:
<link href="@routes.Assets.at("stylesheets/myCss.css")" rel="stylesheet">
<script src="@routes.Assets.at("javascripts/myJs.js")" type="text/javascript" defer="defer" ></script>
是的,你所描述的是正确的
Play在构建过程中将“托管”和“非托管”资产中的内容合并到单个文件夹中(如文档中所述)
但是托管的ASET(即,app/assets
)会被编译—例如,javascript通过jshint
运行,然后复制编译后的版本。非托管资产(即,public
)按“原样”处理,无需处理
显然,将您自己的javascript放入非托管的public
目录并没有什么坏处,但这样您就没有利用Play提供的编译功能
对于包含可自定义文件的库,它取决于。我肯定会将缩小的文件放在public
中,因为否则您可能会从jshint中得到编译错误。自定义文件-取决于自定义的范围。如果只是一个小的“设置”类型的定制,我可以考虑把它们与其他库文件一起放在一起。但是,如果它是正在积极开发的,并且涉及到编写代码,我会把它放在app/assets
中,以获得jshint语法检查的好处
另外,作为旁注,您可以将图像放置在app/assets
——它们将被复制而不做任何更改。但我发现,在重建时触发额外的不必要副本,这会使事情变得更慢,因此将这些副本放在非托管目录中效果更好