0

我已经在这几天了,我变得越来越沮丧。我在 Chrome、FF 上得到不一致的离线功能结果,我刚刚开始使用 Safari。

我正在使用 Asp .Net MVC 3 开发沙盒应用程序。下面是我的应用程序的结构:

  • 控制器/汽车控制器
  • 视图/汽车/编辑
  • 视图/汽车/编辑离线
  • 浏览量/汽车/索引

在 3 个视图中,Index 是唯一定义了 manifest 属性的视图。索引是最初请求的视图。以下是我的清单的内容:

CACHE MANIFEST

FALLBACK:
Car/Edit Car/EditOffline

#Version 1

在 Index 的第一个请求时,浏览器会在 Application Cache 中创建 3 个条目。他们是:

  • 本地主机/沙盒/汽车,类型 = 主
  • localhost/Sandbox/Car/EditOffline,类型 = 后备
  • 本地主机/沙盒/离线。,类型=清单

我一直在模拟所有 3 个浏览器的脱机行为的方式是显式停止 IIS。之后,已请求索引。我关闭了 IIS 并向 Edit 操作发出请求。结果是 EditOffline 得到了服务。现在,当我再次查看 Index 视图时,我收到 404 错误,但为什么呢?我以为浏览器会提供该页面的缓存版本?当我重新请求编辑视图时(仍处于离线状态),我也收到 404 错误,但为什么呢?浏览器之前提供了 EditOffline 视图,那么为什么我现在得到 404 呢?在 FF 中,我已经让它按预期工作了几次,但我没有进行任何代码更改。我明确删除了离线缓存,重新启动服务器,重新请求索引视图,它神奇地工作了。

4

1 回答 1

1

看起来您的初始请求是针对http://localhost/Sandbox/Car,然后是您获得 404 的 URL 吗?清单通过 URL 工作,但它对默认页面或任何其他服务器配置一无所知。就应用程序缓存而言,http://localhost/Sandbox/Car不同的页面也是如此。http://localhost/Sandbox/Car/Index除了您在其中包含对清单文件的引用之外,所涉及的视图在很大程度上与缓存无关。

于 2012-04-19T07:45:06.420 回答