GWT 应用程序中的错误 HTTP 404 ("Script Tag Failure - no status available")
Error HTTP 404 ("Script Tag Failure - no status available") in GWT application
在我们的应用程序中,我们使用 Sencha GXT and GWT 2.7。
不幸的是,弹出窗口中经常显示以下错误:
Download of /path/deferredjs/SOMEGENERATEDID failed with status 404
("Script Tag Failure - no status available")
它似乎只有在部署了新版本的应用程序时才会发生。清除浏览器缓存即可解决问题。
我发现这个错误发生在GWT的class ScriptTagLoadingStrategy.java
中。
除了每次出现时都清除浏览器缓存之外,还有其他方法可以解决这个问题吗?
您的 HTTP 服务器关于缓存的配置似乎没有正确配置为与 GWT 一起工作。
*.nocache.*
不应被缓存
- .cache.可以安全缓存
文档中也有 Apache HTTP 服务器的示例配置。
*.nocache.js
文件是 a bootstrap script:
This file is responsible for choosing the correct version of your application to load for your client based on their browser and locale (...). The various versions of your application compliant to each browser / locale are the <md5>.cache.html
application files.
简而言之:bootstrap 文件会在每次编译时更改,并且是您的应用程序的 "gateway"。它选择要加载的 <md5>.cache.*
应用程序版本。它的名称必须是常量,因为您是从您的主机页面引用它的。由于 <md5>.cache.*
文件的名称随着每次源代码的更改而更改(因为其名称是其内容的 MD5 哈希),因此可以安全地缓存它们。
所以发生的事情是旧的 bootstrap 脚本被缓存(并加载而不是新脚本)并且它正在尝试加载旧版本的应用程序(*.cache.*
文件)。但是,这些文件可能已被 compilation/redeploy 删除,因此 404
.
在我们的应用程序中,我们使用 Sencha GXT and GWT 2.7。
不幸的是,弹出窗口中经常显示以下错误:
Download of /path/deferredjs/SOMEGENERATEDID failed with status 404 ("Script Tag Failure - no status available")
它似乎只有在部署了新版本的应用程序时才会发生。清除浏览器缓存即可解决问题。
我发现这个错误发生在GWT的class ScriptTagLoadingStrategy.java
中。
除了每次出现时都清除浏览器缓存之外,还有其他方法可以解决这个问题吗?
您的 HTTP 服务器关于缓存的配置似乎没有正确配置为与 GWT 一起工作。
*.nocache.*
不应被缓存- .cache.可以安全缓存
文档中也有 Apache HTTP 服务器的示例配置。
*.nocache.js
文件是 a bootstrap script:
This file is responsible for choosing the correct version of your application to load for your client based on their browser and locale (...). The various versions of your application compliant to each browser / locale are the
<md5>.cache.html
application files.
简而言之:bootstrap 文件会在每次编译时更改,并且是您的应用程序的 "gateway"。它选择要加载的 <md5>.cache.*
应用程序版本。它的名称必须是常量,因为您是从您的主机页面引用它的。由于 <md5>.cache.*
文件的名称随着每次源代码的更改而更改(因为其名称是其内容的 MD5 哈希),因此可以安全地缓存它们。
所以发生的事情是旧的 bootstrap 脚本被缓存(并加载而不是新脚本)并且它正在尝试加载旧版本的应用程序(*.cache.*
文件)。但是,这些文件可能已被 compilation/redeploy 删除,因此 404
.