【问题标题】:ASP.NET MVC offline app url problemASP.NET MVC 离线应用 url 问题
【发布时间】:2011-05-13 17:09:44
【问题描述】:
我有一个 MVC2 网站,我试图在 iPhone 上离线工作。我站点中的所有页面都使用相同的母版页,这引用了单个缓存清单文件。清单文件中不存在任何特定的 MVC url,但现在还可以,因为它们一旦被访问一次就会被缓存(它们在初始下载时被缓存)。
我的问题是这样的:如果我有一个 www.mysite.com/red 或 www.mysite.com/blue 的 url,那么页面会被缓存在 iphone 上。如果我有 www.mysite.com/red/one 或 www.mysite.com/blue/two 的 URL,则该页面不会被缓存。
有人知道为什么会这样吗?
非常感谢。
【问题讨论】:
标签:
iphone
asp.net-mvc
offline
browser-cache
【解决方案1】:
缓存清单中列出的文件的 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,您应该将清单更改为使用绝对 URL,如下所示:
CACHE MANIFEST
/scripts/site.js
/css/site.css