【发布时间】:2012-09-19 22:22:54
【问题描述】:
Rails 提供了一个非常简单的静态资产指纹解决方案。 Play 框架有类似的东西吗?在 Google 上似乎找不到任何东西。
谢谢。
http://guides.rubyonrails.org/asset_pipeline.html
更新:我的公司最终在内部实施了一项。
【问题讨论】:
标签: playframework playframework-2.0 cdn
Rails 提供了一个非常简单的静态资产指纹解决方案。 Play 框架有类似的东西吗?在 Google 上似乎找不到任何东西。
谢谢。
http://guides.rubyonrails.org/asset_pipeline.html
更新:我的公司最终在内部实施了一项。
【问题讨论】:
标签: playframework playframework-2.0 cdn
Play 2.3(目前在 RC1 上)引入了类似 Rails 的资产管道,支持 asset fingerprinting。
【讨论】:
你可能想看看新的 require.js 支持[1],在 play 2.1 master 上可用
[1]https://github.com/playframework/Play20/commit/e3c2ffb0d4779863374c44c5ec1a588a1eca4474
【讨论】:
Play 框架 2 内置了对 CofeeScript、LESS 和 Closure 的支持,但是它们都不被视为“静态”资源,因为它们是在运行时编译的。
目前还没有与fingerprint 等效的功能,因此您需要自己编写(可能很短)动作。
【讨论】:
我不确定您如何通过一个答案提到的很短的动作来做到这一点。
但是您可以像 James Ward 在这里所做的那样创建一个封装的资产控制器: https://github.com/jamesward/play2-cloudfront
这将只处理使用 CDN 信息装饰链接。然后,您可以获得链接的 MD5 并将其附加到文件名中。因此,如果您有 foo.js,它将是 foo-fp-XXXXXXXXXXXXXX.js"。
我认为当 CDN 来寻找它时,您必须更改路由文件以将该资产路由到正确的文件。所以路由必须剥离“-fp-XXXXXXXXXXXXXX”中的所有内容并获取文件名和扩展名。
编辑: 这是 git repo,我有一个示例,说明我们如何在我的公司进行资产指纹识别。 https://github.com/Egraphs/play-assets-improvements
【讨论】: