gpt4 book ai didi

javascript - Glassfish 不更新 JavaScript 文件

转载 作者:行者123 更新时间:2023-11-28 07:27:49 25 4
gpt4 key购买 nike

我一直在 Web 项目中使用 Glassfish 3.1,即使在更新 JavaScript 文件并将整个项目重新发布到 glassfish 服务器上之后,服务器似乎仍执行旧版本的文件。我尝试过重新启动服务器,但一切都是徒劳的。提前致谢。

最佳答案

在我的回答中,我假设您完全确定即使您打包了更新的脚本,旧的脚本版本仍然会呈现在页面上。不过我建议仔细检查一下。

您在这里有一些选择:

第一个选项如果它是一台开发机器并且只是一次缓存问题,您可以通过从 GLASSFISH_HOME 中删除应用程序、生成的文件夹和 osgi-cache 文件夹来快速修复它。不过,在此之前你应该停止你的AS。

第二个选项如果您不希望页面被兑现,您可以创建一个 javax.servlet.Filter 并将 Expires header 添加到 doFilter 中的响应中方法。如果您使用过去的某个日期,则该页面将永远不会被缓存。

  ((HttpServletResponse) resp).addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");

或者,您可以计算一个值,这将是您的缓存策略。

第三个选项您可以向页面 URL 添加参数。例如 http(s)://{YOUR_URL}/${PATH_TO_PAGE}?version={APP_VERSION}

您不必读取或处理此参数,因此您不必关心其名称或值,但如果在您的应用程序中,每次升级应用程序并导航到添加此参数的页面时,您都会增加 {APP_VERSION}参数,它将使页面 URL 对于每个应用程序版本都是唯一的,并且您可以确保不使用以前版本的缓存版本。这种方式当然有点尴尬,但仍然是一种选择。顺便说一句,这是检查您是否确实遇到与缓存相关的问题的好方法。只需使用随机值向页面 URL 添加随机参数,您就应该看到最新的脚本版本。

第四个选项您可以以某种方式组合这些选项

希望有帮助

关于javascript - Glassfish 不更新 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29443875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com