java - GWT 中静态文件的缓存

标签 java caching gwt

使用 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 设置 ExpiresCache-Control: max-age header 即可在您给定的路径上。

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

关于java - GWT 中静态文件的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065679/

相关文章:

delphi - 缓存计算值的方法

使用 mockito 进行 GWT 测试

java - 在 jlabel 背景上添加 jpanel

java - 将数据从 Redis 迁移到 Microsoft Azure 的最佳方式是什么

caching - Zf2 - ZfcRbac/AuthenticationService - Doctrine2

caching - 如何在实践中创建一个 Spectre 小工具?

internet-explorer - 带有弹出窗口和 iFrame 的 GWT/GXT 应用程序,在带有 Adob​​e reader 的 Internet Explorer 下,PDF 不会隐藏

gwt - 如何替换此不赞成使用的方法调用?

java - 如何更改 java.awt.Graphics 绘制对象的方式?

java - Java同时访问同一个对象的不同成员