GWT应用程序中出现错误HTTP 404(“Script Tag Failure-no status available

Error HTTP 404 ("Script Tag Failure - no status available") in GWT application

本文关键字:Script Tag Failure-no available status 应用程序 HTTP 错误 GWT      更新时间:2023-09-26

在我们的应用程序中,我们使用Sencha GXT和GWT 2.7。

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

下载/path/deferredjs/SOMEGENERATEDID失败,状态为404("脚本标记失败-无可用状态")

它似乎只有在部署了新版本的应用程序时才会发生。清除浏览器缓存可以解决问题。

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

除了每次出现浏览器缓存时都清除它之外,还有其他方法可以解决这个问题吗?

您的HTTP服务器关于缓存的配置似乎没有正确配置为使用GWT。

根据文件:

  • 不应缓存*.nocache.*
  • .cache.可以安全缓存

文档中还有一个Apache HTTP服务器的配置示例。

*.nocache.js文件是一个引导脚本:

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

简而言之:引导文件在每次编译时都会发生变化,它是应用程序的"网关"。它选择要加载的<md5>.cache.*应用程序版本。它的名称必须是常量,因为您是从主页面引用它的。由于<md5>.cache.*文件的名称随着源代码的每次更改而更改(因为其名称是其内容的MD5哈希),因此可以安全地缓存它们。

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