我有一个MVC2网站,我试图在iPhone上脱机工作。我站点中的所有页面都使用相同的母版页,这引用了单个缓存清单文件。清单文件中没有任何特定的MVC URL,但现在可以,因为它们一旦被访问就会被缓存(它们在初始下载时被缓存)。
我的问题是:如果我有www.mysite.com/red或www.mysite.com/blue的网址,那么该页面会缓存在iphone上。如果我有www.mysite.com/red/one或www.mysite.com/blue/two的网址,则该页面不会被缓存。
有谁知道为什么会这样?
非常感谢。
答案 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