我正在使用应用程序缓存,我面临以下问题:
在Tomcat服务器中:
当服务器处于联机状态且首次访问该页面时,清单文件中指定的文件将在应用程序缓存中成功捕获。
当服务器处于脱机状态时,当我们尝试访问缓存页面时,浏览器控制台中出现错误(Application Cache Error event: Manifest fetch failed (-1)
根据我在互联网上的发现很正常)但是应用程序缓存工作正常
在Weblogic服务器中:
我尝试在Weblogic服务器中运行相同的代码,在线模式下,文件按预期缓存。但是在离线模式下,第一次加载页面时,它工作正常,但是当我看到控制台时,应用程序缓存的状态变为OBSOLETE模式,所以如果我再次刷新页面,它会抛出我404错误。另外,当我尝试在tomcat服务器中运行代码时,我没有得到"Application Cache Error event: Manifest fetch failed (-1)"
。请让我知道我做错了什么。以下是文件:
的index.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:
*
的style.css
body{
background-color: #333;
}
h1{
color: #c94054;
}
p{
color: #fff;
}
的script.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>
答案 0 :(得分:1)
当浏览器遇到html标记中的清单行时,会出现此问题,它会尝试从服务器下载appcache文件。但是当服务器没有此文件时,它会返回404错误,因此应用程序缓存将转到OBSOLETE事件。
所以在这种情况下,可能的原因是 1-您的服务器不包含此文件 2 - 如果您的服务器有此文件但未返回浏览器,则在服务器运行但您的应用程序实际上已取消部署时会发生这种情况。
因此,请尝试停止服务器,而不是仅从服务器实例中取消部署应用程序。 希望它有效。