Play框架中的资源指纹技术

3
Rails 为指纹静态资源提供了一种非常简单的解决方案。Play Framework 是否有类似的东西可用?在谷歌上好像找不到任何信息。
谢谢。

http://guides.rubyonrails.org/asset_pipeline.html

更新:我的公司最终在内部实施了一个。
4个回答

3

Play 2.3现已发布。 :) - Rich Dougherty

3

嗯,我们目前在我们的play.1x应用程序中使用require.js来加载资源。使用require.js优化器是否会对JavaScript文件进行指纹识别? - sbilstein

1

我不确定如何通过一个简短的操作来完成,正如其中一个答案所提到的。

但是你可以创建一个类似James Ward在这里创建的包装Assets控制器: https://github.com/jamesward/play2-cloudfront

它将只处理用CDN信息装饰链接。然后,您可以获取链接的MD5并将其附加到文件名中。因此,如果您有foo.js,它将变成foo-fp-XXXXXXXXXXXXXX.js"。

我认为您需要更改路由文件,以便在CDN寻找它时将该资产路由到正确的文件。因此,路由必须剥离“-fp-XXXXXXXXXXXXXX”中的所有内容,并获取文件名和扩展名。

编辑: 这是我的公司如何进行资产指纹识别的示例的git存储库。 https://github.com/Egraphs/play-assets-improvements


1
自从发布这个答案以来,我实际上已经做到了,并且效果很好。 - myyk

1

Play框架2内置支持CofeeScript, LESSClosure, 但它们都不被视为“静态”资源,因为它们在运行时编译。

目前还没有fingerprint的等效物,所以您需要自己编写(可能相当短的)操作。


我所说的静态是指它们不会根据每个用户而改变。它们是静态内容,可以利用CDN进行优化,指纹技术有助于确保CDN访问这些文件的最新版本。 - sbilstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接