GWT 中静态文件的缓存

Caching of Static Files in GWT

使用 GWT 开发的应用程序包含大量我想缓存 30 天的静态文件 (javascript,css,images)。我读了很多博客,但没有得到任何线索。

- 如何缓存静态文件? - 实现缓存的可能选项是什么(我需要在服务器或 GWT 应用程序中配置,这里我使用 glassfish/payara 服务器进行部署)

有什么想法吗? 注意:我想通过最少的代码更改来实现这一点,即使我读过这个 Client side caching in GWT 但不想采用调度程序方法

您需要将 ExpiresFilter 之类的内容添加到您的 servlet 容器中。

我正在添加上面提到的 link 的配置细节,以防 link 的内容消失:

您需要编辑 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 设置了 ExpiresCache-Control: max-age headers。

作为初学者,我偶然发现 this implementation and how Tomcat 做到了。