我已经在这几天了,而且变得越来越沮丧。我在Chrome,FF和我刚刚开始使用Safari时获得了不一致的离线功能结果。
我正在使用Asp .Net MVC 3开发沙盒应用程序。以下是我的应用程序的结构:
在3个视图中,Index是唯一定义了manifest属性的视图。索引是最初请求的视图。以下是我的清单的内容:
CACHE MANIFEST
FALLBACK:
Car/Edit Car/EditOffline
#Version 1
在第一次请求索引时,浏览器在应用程序缓存中创建3个条目。他们是:
我为所有3个浏览器模拟离线行为的方法是明确停止IIS。之后,已请求索引。我关闭IIS并向Edit操作发出请求。结果是EditOffline被提供。现在,当我再次查看索引视图时,我收到404错误,但为什么呢?我以为浏览器会提供该页面的缓存版本?当我重新设置编辑视图(同时仍处于脱机状态)时,我也会收到404错误,但为什么?浏览器以前提供过EditOffline视图,为什么我现在要获得404?在FF中,我已经按预期工作了几次,但我没有更改代码。我明确删除了脱机缓存,重新启动了服务器,重新请求索引视图,它神奇地工作。
答案 0 :(得分:1)
看起来您的初始请求是http://localhost/Sandbox/Car
,是您获得404的网址吗?清单通过URL工作,但它对默认页面或任何其他服务器配置一无所知。因此,就应用程序缓存而言,http://localhost/Sandbox/Car
是与http://localhost/Sandbox/Car/Index
不同的页面。所涉及的视图与缓存无关,除了您已在其中包含对清单文件的引用。