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
设置了 Expires
和 Cache-Control: max-age
headers。
使用 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
设置了 Expires
和 Cache-Control: max-age
headers。