HTML 5 Manifest在多个浏览器中具有不同的行为

时间:2013-09-23 16:48:09

标签: asp.net html5 internet-explorer firefox manifest

我在HTML 5 Manifest上添加了一些设置,这些设置在Google Chrome上实现了完美的行为

iOS上的Safari和Safari上的Safari作为网络剪辑。

不幸的是,相同的代码导致在IE和Fire Fox中加载清单文件时中止。

以下是我们应用的设置:

在服务器端:IIS 7,Windows Server 2008 R2。 响应:text / cache-manifest,no-cache。

清单的文字是:

CACHE MANIFEST


CACHE:

/
/Index.html
/Login.html
/favicon.ico
/Content/Kendo/web/Font/FontAwesome.otf

NETWORK:
*

以下是第一个文件

的IE网络探查器的结果
URL: http://192.168.0.220:1009/

Method:

Result: (Aborted)

Type: text/html

Received: 292 B

Taken: < 1 ms

Initiator: (Pending...)

以下是回复:

Key Value

Response    HTTP/1.1 200 OK

Cache-Control   no-cache, no-store

Pragma  no-cache

Content-Type    text/html

Expires -1

Last-Modified   Mon, 23 Sep 2013 16:05:06 GMT

Accept-Ranges   bytes

ETag    "351169ab76b8ce1:0"

Server  Microsoft-IIS/7.5

X-Powered-By    ASP.NET

Date    Mon, 23 Sep 2013 16:32:43 GMT

这是html 5清单的错误消息:

Resource doesn’t exist on the server: 'http://192.168.0.220:1009/'. 
AppCache Fatal Error

最后我在Index.html页面上有这些元标记:

<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
<meta http-equiv="EXPIRES" content="0" />
<meta http-equiv="PRAGMA" content="NO-CACHE" />

任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因。

在ASP.NET Global.asax的Request_End中,我们应该应用

HttpContext.Current.Response.Cache.SetNoStore();

仅适用于iOS,并且Chrome始终有效,无论是更新应用程序还是脱机使用。

注意:在iOS的网页剪辑和游戏中需要 no-store ,因为在更新清单之前已经加载了文件,否则它们将不会更新,即使清单下载新版本他们。

希望这对你也有帮助。