我已经使用 GWT 编写了应用程序。它非常适合客户。但是当我在我的应用程序中更改某些内容,重新编译然后部署到服务器和客户端访问我的应用程序时,他的浏览器不会选择新版本的应用程序,而是使用以前缓存的版本。这会触发 RPC 错误和其他问题。
我如何强制客户端的浏览器在访问我的页面时获取应用程序的新版本,并在缓存版本与服务器上的版本匹配时使用它。
我已经使用 GWT 编写了应用程序。它非常适合客户。但是当我在我的应用程序中更改某些内容,重新编译然后部署到服务器和客户端访问我的应用程序时,他的浏览器不会选择新版本的应用程序,而是使用以前缓存的版本。这会触发 RPC 错误和其他问题。
我如何强制客户端的浏览器在访问我的页面时获取应用程序的新版本,并在缓存版本与服务器上的版本匹配时使用它。
确保您的"*.nocache.*"
文件和起始页(通常是“index.html”)使用正确的 HTTP 缓存标头提供。有关此(有些困难)主题的讨论,请参阅不同类型资源的理想 HTTP 缓存控制标头。基本上,你可能想要设置
Cache-Control: no-cache
对于这些文件。(顺便说一句,这仅在文件更改时才强制重新下载!)
如何进行此配置,取决于您的 Web 服务器(对于 Apache Httpd,您可以使用本指南)。
或者 - 如果您使用 JavaEE 服务器(Tomcat、Jetty...)来提供这些文件 - 您可以使用 Servlet 过滤器。也许您想使用我的示例,来自How to set Expires HTTP header on a single JS file in Apache Tomcat?
本主题可以帮助您清除缓存:如何清除 gwt 中的缓存?