使用 sprockets 时,我有一个完整的 .coffee 文件目录,这些文件可以转换、合并并成为“mobile_v2.js”。当这个文件被提供时,一个美妙的 ETag 被设置在它上面,并带有内容的 SHA1 哈希值。这允许缓存清除和其他一切美妙且良好的正常工作。即,如果我修改任何源 .coffee 文件并重新加载页面,Sprockets 将重新生成“mobile_v2.js”并将其发送到客户端。如果我不更改任何内容,客户端将使用该资源的缓存副本。这很好用。
现在我有一个场景,其中一部分网络应用程序使用Backbone.js,并且用户可以在一个页面上花费很长时间而不进行完全“刷新”......即,大量的 AJAX 更新,但是没有新的 ”...”。从字面上看,客户可能会在此页面上花费数周时间。因此,如果我将更新推送到 JS/CSS 资源,我需要一种方法让客户端检测到这一点并触发整个页面的重新加载。完全重新加载是破坏性的,所以我不想做太多不必要的事情。我也不想轮询服务器以获取这些资源......我有所有这些 AJAX 调用,所以我可以使用额外的响应头来搭载这些调用。我能做的一切。我只需要一个简单问题的帮助:
给定一个生成的资源,如“mobile_v2.js”,我如何查询 Sprockets 以获取该文件的 SHA1 摘要?(来自我的红宝石代码)