GWT应用程序中的HTTP 404错误(“脚本标记失败 - 无可用状态”)

时间:2015-03-05 10:31:29

标签: java javascript gwt http-status-code-404 gxt

在我们的应用程序中,我们使用Sencha GXTGWT 2.7

不幸的是,弹出窗口中经常出现以下错误:

  

下载/ path / deferredjs / SOMEGENERATEDID失败,状态为404   ("脚本标签失败 - 没有状态")

只有在部署了新版本的应用程序时才会出现这种情况。清除浏览器缓存可以解决问题。

我发现这个错误发生在GWT的班级ScriptTagLoadingStrategy.java中。

除了每次清除浏览器缓存时,还有其他方法可以解决此问题吗?

1 个答案:

答案 0 :(得分:1)

似乎您的HTTP服务器配置有关缓存未正确配置为与GWT一起使用。

根据to the documentation

  • *.nocache.*不应该被缓存
  • .cache。可以安全地缓存

文档中也有Apache HTTP服务器的示例配置。

*.nocache.js文件为a bootstrap script

  

此文件负责根据浏览器和区域设置(...)选择要为客户端加载的应用程序的正确版本。符合每个浏览器/区域设置的应用程序的各种版本是<md5>.cache.html应用程序文件。

简而言之:引导程序文件在每次编译时都会更改,并且是一个&#34;网关&#34;到您的申请。它选择要加载的<md5>.cache.*应用程序版本。它的名称必须是常量,因为您从主机页面引用它。自<md5>.cache.*个文件&#39;名称随着每个源代码更改而变化(因为它的名称是其内容的MD5哈希),它们可以安全地缓存。

所以发生的事情是旧的引导脚本被缓存(并加载而不是新的脚本)并且它试图加载旧版本的应用程序(*.cache.*文件之一) 。但是,这些文件可能已被编译/重新部署删除,因此404