Wicket:正确缓存CSS资源

| 我们刚刚从GWT迁移到Wicket 1.4。虽然总的来说很高兴,但对于GWT简化的某些事情,我们仍然有一些学习上的弯路。其中之一就是资源缓存。 如何配置应用程序的资源(尤其是CSS),以免在每次页面请求时都下载这些资源? 我们正在某些页面元素上看到一些闪烁,因为样式没有立即应用,大概是因为每次都下载了样式表。我浏览了我们的日志,实际上,我几乎在每个页面请求上都看到了对样式表的请求。 我们在HTML文件中直接引用CSS,如下所示:
    <link href=\"/css/ag.screen.css\" rel=\"stylesheet\" type=\"text/css\">
    <link href=\"/css/ag.base.css\" rel=\"stylesheet\" type=\"text/css\">
我不确定是否很重要,但是我们所有的页面都安装了ѭ1mounted,因为我们需要它们既可标记为书签,又具有特定的URL结构。 我尝试实现StefanFußenegger在他的博客中建议的内容(即通过标头贡献而不是直接在HTML中引用CSS),但这似乎没有帮助(我尝试使用\“ curl -I \”检查标头) )。 在Wicket 1.4中是否有标准的方法来为资源设置Cache-Control或Expiration标头?为此值得转向Wicket 1.5吗? (我很犹豫这样做,因为它尚未正式发布)。 编辑:我只是给1.5再次尝试,但此时缺少文档确实是一个障碍。
IndexedParamUrlCodingStrategy
和相关类都消失了,并且迁移指南几乎没有话要说。 编辑2:我只是注意到了一件很奇怪的事情-当我通过直接输入URL或单击BookmarkablePageLink到达页面之一时,该页面上引用的资源(CSS,图像等)似乎被缓存了(我在我的日志中看不到对它们的任何请求)。但是,如果我通过表单提交到达同一页面,则会再次下载所有资源。为什么表单提交会导致页面上引用的资源被重新下载?     
已邀请:
由于您要改用Wicket,因此我建议您使用1.5RC4.2。查看有关此RC的错误报告,我认为下一个可能是1.5.0Final。 关于缓存,请参见以下Wiki页面:https://cwiki.apache.org/WICKET/caching-in-wicket-15.html。 它约为1.5,但同时也说明与1.4有什么区别。     
我和您有同样的需求,我越需要缓存资源客户端。 现在,我被困在1.4.x以下,并且找到了适合我的解决方案。 我使用了StefanFußenegger所写的出色的图书馆,他在这里提供了图书馆。实现非常简单,我在生产模式下使用了StaticResourceVersionProvider。到目前为止,我还没有任何问题(目前对我的客户来说是坚如磐石)。 如果您需要有关我如何使用此解决方案的详细信息,请不要犹豫。     
要管理非Wicket资源的标头,可以使用web.xml中在WicketFilter之前列出的普通Servlet Filter。只需检查请求网址,如果文件扩展名是.css / .js / ...,则只需在响应中设置缓存头即可。 关于Wicket 1.5中的** UrlCodingStrategies,请阅读http://wicketinaction.com/2011/07/wicket-1-5-request-mapper/和以下两篇文章。希望对您来说更清楚。     
您可以立即获得资源上的指纹。创建缓存指纹的策略可以很容易地修改或更改。 Wicket Wiki页面上有更多有关1.5中资源缓存如何工作的信息。     

要回复问题请先登录注册