ASP.NET MVC离线应用url问题

时间:2011-05-13 17:09:44

标签: iphone asp.net-mvc offline browser-cache

我有一个MVC2网站,我试图在iPhone上脱机工作。我站点中的所有页面都使用相同的母版页,这引用了单个缓存清单文件。清单文件中没有任何特定的MVC URL,但现在可以,因为它们一旦被访问就会被缓存(它们在初始下载时被缓存)。

我的问题是:如果我有www.mysite.com/red或www.mysite.com/blue的网址,那么该页面会缓存在iphone上。如果我有www.mysite.com/red/one或www.mysite.com/blue/two的网址,则该页面不会被缓存。

有谁知道为什么会这样?

非常感谢。

1 个答案:

答案 0 :(得分:0)

缓存清单中列出的文件的url都是相对于包含清单的文件的位置,而不是清单本身的位置。

如果您的网站结构如下:

www.mysite.com/red
www.mysite.com/blue
www.mysite.com/red/one
www.mysite.com/blue/two
www.mysite.com/scripts/site.js
www.mysite.com/css/site.css
www.mysite.com/cache.manifest

你的cache.manifest目前看起来像

CACHE MANIFEST
scripts/site.js
css/site.css

适用于www.mysite.com/red和www.mysite.com/blue。

要使相同的缓存清单适用于www.mysite.com/red/one或www.mysite.com/blue/two,您应该将清单更改为使用绝对网址,如下所示:

CACHE MANIFEST
/scripts/site.js
/css/site.css