1

我正在使用应用程序缓存,我面临以下问题:

在 Tomcat 服务器中:

当服务器在线并且第一次访问该页面时,清单文件中指定的文件被成功捕获到应用程序缓存中。

当服务器离线时,当我们尝试访问缓存页面时,浏览器控制台出现错误(Application Cache Error event: Manifest fetch failed (-1)根据我在互联网上的发现,这很正常),但应用程序缓存工作正常。

在 Weblogic 服务器中:

我尝试在 Weblogic 服务器中运行相同的代码,在在线模式下,文件按预期缓存。但是在离线模式下,第一次加载页面时,它工作正常,但是当我看到控制台时,应用程序缓存的状态变为 OBSOLETE 模式,所以如果我再次刷新页面,它会抛出我404 错误。另外,"Application Cache Error event: Manifest fetch failed (-1)"当我尝试在 tomcat 服务器中运行代码时,我没有得到我得到的结果。请让我知道我做错了什么。以下是文件:

索引.html

<html manifest="demo.appcache"> 
<head> 

<link rel="stylesheet" href="style.css" type="text/css" /> 

<script type="text/javascript" src="script.js" ></script>


</head> 
<body> 
<h1>Basic example of page using Application Cache</h1> 
<p>Disconnect from the internet and try to reload this page. It should load without requiring you to connect to the internet.</p> 
</body> 
</html>

清单文件(demo.appcache)

CACHE MANIFEST

CACHE:
style.css
script.js
index.html
demo.appcache

NETWORK:
*

样式.css

body{
    background-color: #333;
}
h1{
    color: #c94054;
}
p{
    color: #fff;
}

脚本.js

if (!window.applicationCache){
    alert('It seems that Application Cache is not supported in this browser. Please use a browser which supports it.');
}

web.xml

<mime-mapping>
     <extension>appcache</extension>
     <mime-type>text/cache-manifest</mime-type>
     </mime-mapping>
4

1 回答 1

1

当浏览器遇到 html 标签中的 manifest 行时,就会出现这个问题,它会尝试从服务器下载 appcache 文件。但是当服务器没有这个文件时它返回 404 错误,所以应用程序缓存转到 OBSOLETE 事件。

所以在这种情况下,可能的原因是 1 - 您的服务器不包含此文件 2 - 如果您的服务器有此文件但没有返回到浏览器,这发生在服务器正在运行但您的应用程序实际上未部署时。

因此,请尝试停止您的服务器,而不仅仅是从服务器实例中取消部署您的应用程序。希望它有效。

于 2012-11-10T13:10:50.013 回答