Grails Resources插件 - 如何获取生成的URL?

时间:2012-07-11 15:49:15

标签: grails resources cache-manifest

有谁知道我如何访问资源插件会吐出的确切网址?

我想使用资源插件来优化我的javascript文件的传输,但是,我正在编写的应用程序是一个使用缓存清单的html5离线应用程序。根据缓存清单的规则,缓存清单文件必须完全按照html页面中显示的方式引用文件。

资源插件在聚合文件上添加了一堆查询字符串信息和校验和。为了使资源插件优化缓存清单能够正常工作,我需要吐出资源插件在缓存清单文件中的确切URL。

以下是我所谈论的一些例子:

资源插件将在我的html输出中吐出以下内容:

<script src="/awesome-app/static/36wl8Nwm8L7ZZMSbV6NVQPfi6xCx6DcVV0wFDCYRyv5.js" type="text/javascript" ></script>

如果我能抓住上述网址的36wl8Nwm8L7ZZMSbV6NVQPfi6xCx6DcVV0wFDCYRyv5.js部分,我可以将其包含在我的缓存清单文件中,如下所示:

CACHE MANIFEST

# rev 192

NETWORK:
*

CACHE:
static/36wl8Nwm8L7ZZMSbV6NVQPfi6xCx6DcVV0wFDCYRyv5.js  //<-- this would be the aggregated file!

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为重命名是缓存资源插件的一部分,而不是基本资源插件。如果我们谈论同样的事情,他们使用每个文件字节内容的SHA256哈希来产生哈希。请参阅github上的HashAndCacheResourceMapperBASE62类,您将看到它们是如何生成文件名的。或者,如果您不依赖插件中的缓存机制,则可以将其禁用并一起避免出现问题。