使用 GWT 开发的应用程序,其中包含大量静态文件(javascript、css、图像
),我想将其缓存30
天。我读了很多博客,但没有得到任何线索。
- 如何缓存静态文件? - 实现缓存的可能选项是什么(我需要在服务器或GWT应用程序中配置,这里我使用glassfish/payara服务器进行部署)
有什么想法吗? 注意:我想用最少的代码更改来实现这一点,即使我读了这个 Client side caching in GWT 但不想采用调度程序方法
最佳答案
您需要添加类似 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
header 即可在您给定的路径上。
关于java - GWT 中静态文件的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065679/