2015-04-04 54 views
1

我一直在使用Glassfish 3.1作为web项目,甚至在更新JavaScript文件之后,然后将整个项目重新发布到glassfish服务器上,服务器似乎执行了旧版本的文件。 我试过了,重新启动服务器,但一切都徒劳无功。 在此先感谢。Glassfish没有更新JavaScript文件

回答

0

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

你有一些选择这里:

第一选项 如果它是一个开发人员的机器,只是一个与缓存时间问题,您可以快速删除应用程序,生成和OSGi的缓存文件夹从您的GLASSFISH_HOME修复。尽管如此,你应该停止你的AS。

第二个选项 如果你不希望自己的网页兑现你可以创建一个javax.servlet.Filter,并添加Expires头在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都是唯一的,并且您可以确保不使用先前版本的缓存版本。这当然有点尴尬,但它仍然是一种选择。顺便说一句,这是检查是否真的遇到了与缓存相关的问题的好方法。只需在随机值中添加一个随机参数到您的页面网址,您应该可以看到最新的脚本版本。

第四个选项 你能以某种方式结合这些选项

希望帮助

0

这不是Glassfish的问题。这是因为你的浏览器缓存了js文件。

你只需要清除你的浏览器缓存。