Vaadin @Javascript : 为更新的 JS 文件清除缓存
Vaadin @Javascript : clear cache for updated JS file
我的应用程序中有一个 @JavaScript 注释,用于从类路径加载 .js 文件。
现在我已经对文件进行了更新并重新部署(本地),但我总是取回旧版本。我已尝试重新加载所有内容(ctrl+R、ctrl+F5),但这不起作用,而且我也不希望用户必须这样做。
我过去使用的一个技巧(没有 Vaadin)是将请求参数附加到版本(例如?version=1)并更新它,以便 URL 发生变化。但显然 @JavaScript 注释不允许这样做(Vaadin 甚至不尝试加载文件)。
这是浏览器本地缓存JS文件的特性,与Vaadin无关。
如你所想:如果你想确保用户拥有最新版本的JS文件,你应该将JS文件名重命名为:script_buildNumber.js
.
使用 Chrome 的隐身功能(访问 spicy/unpleasant 网站时不要使用它)。
只需以隐身模式打开浏览器https://support.google.com/chrome/answer/95464?hl=en,浏览器将不会缓存任何内容。
其他浏览器也有此功能(Opera、IE、Firefox、Safari)。
正如我在 1 月 12 日对问题的评论中指出的那样,重命名文件有效。这似乎是目前唯一的方法,尽管它远非理想。
我通过使用 Vaadin servlet 配置的 resourceCacheTime
参数克服了这个问题:
@VaadinServletConfiguration(ui = MyUI.class, resourceCacheTime = 0)
尽管 它有其局限性,如我对 的回答所述。
我的应用程序中有一个 @JavaScript 注释,用于从类路径加载 .js 文件。
现在我已经对文件进行了更新并重新部署(本地),但我总是取回旧版本。我已尝试重新加载所有内容(ctrl+R、ctrl+F5),但这不起作用,而且我也不希望用户必须这样做。
我过去使用的一个技巧(没有 Vaadin)是将请求参数附加到版本(例如?version=1)并更新它,以便 URL 发生变化。但显然 @JavaScript 注释不允许这样做(Vaadin 甚至不尝试加载文件)。
这是浏览器本地缓存JS文件的特性,与Vaadin无关。
如你所想:如果你想确保用户拥有最新版本的JS文件,你应该将JS文件名重命名为:script_buildNumber.js
.
使用 Chrome 的隐身功能(访问 spicy/unpleasant 网站时不要使用它)。
只需以隐身模式打开浏览器https://support.google.com/chrome/answer/95464?hl=en,浏览器将不会缓存任何内容。
其他浏览器也有此功能(Opera、IE、Firefox、Safari)。
正如我在 1 月 12 日对问题的评论中指出的那样,重命名文件有效。这似乎是目前唯一的方法,尽管它远非理想。
我通过使用 Vaadin servlet 配置的 resourceCacheTime
参数克服了这个问题:
@VaadinServletConfiguration(ui = MyUI.class, resourceCacheTime = 0)
尽管 它有其局限性,如我对