使用GWT开发应用程序,其中包含许多我想在javascript,css,images
天内缓存的静态文件(30
)。我阅读了很多博客,但没有得到任何线索。
- 如何缓存静态文件? - 实现缓存的可能选项是什么(我需要在服务器或GWT应用程序中配置,这里我使用glassfish / payara服务器进行部署)
有什么想法吗? 注意:我希望用最少的代码更改来实现这一点,即使我读过这个Client side caching in GWT 但不想采用调度员方法
答案 0 :(得分:1)
您需要将类似ExpiresFilter
的内容添加到servlet容器中。
我在上面提到的链接中添加了配置的详细信息,以防链接的内容消失:
您需要编辑web.xml以添加过滤器和过滤器映射:
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>server.ExpiresFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>/images/\*</url-pattern> <!-- these patterns should match cached resources -->
<url-pattern>/resources/\*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
如果您需要更便携的方法在不同的应用程序服务器中使用,您最终可能会像我一样编写通用servlet Filter
。
毕竟这没什么大不了的,因为您已经在给定路径上为HttpServletRequests
设置了Expires
和Cache-Control: max-age
标题。