在进行HTML5网页应用缓存时出现问题

3

我有一个 Web 应用程序,其域名为 http://draft.mo2do.com

当我访问该 URL 时,它将解析为以下 URL,并重定向到相应网站的首页。

http://draft.mo2do.com/s/_91665/Home

我在这里实现了离线缓存。我的cache.manifest文件如下:

   CACHE MANIFEST
   # Offline cache v4.0

   # All other resources (e.g. sites) require the user to be online.  

   NETWORK:

   *

   # Additional resources to cache CACHE:

   # Add the pages in to the cache 

   /s/_91665/Home /s/_91665/CachedDraftBoard

   http://draft.mo2do.com

   # Add the images in to the cache 

   /s/store/-1/webapp/styles/webapp.css

   /s/store/-1/webapp/styles/nba_draft.css

   /s/store/-1/webapp/styles/add2drafthome.css?v2  

   #  Add the js files in to the cache 

   /s/store/-1/webapp/scripts/jquery-1.5.min.js

   /s/store/-1/webapp/scripts/iscroll.js

   /s/store/-1/webapp/scripts/webapp.js

   /s/store/-1/webapp/scripts/nba_draft.js

   /s/store/-1/webapp/scripts/cacheUpdate.js

   /s/store/-1/webapp/scripts/add2drafthome.js?v0.9.4  



   /webapp/icon.png /webapp/startup.png

   /s/store/-1/webapp/nba/addtodrafthome/arrow.png

   /s/store/-1/webapp/nba/addtodrafthome/close-bubble.png

   /s/store/-1/webapp/nba/addtodrafthome/icon.png

   /s/store/-1/webapp/nba/addtodrafthome/plus.png

   /s/store/-1/webapp/nba/addtodrafthome/share.png

   FALLBACK: 

   http://draft.mo2do.com

如果我直接访问网站的URL,则缓存会起作用,这时我没有在缓存部分中提到“http://draft.mo2do.com”。此时离线缓存正常工作。
如果我只在浏览器中直接访问域名URL“http://draft.mo2do.com”,则在离线模式下无法打开404。
然后我将“http://draft.mo2do.com”添加到缓存部分,这时我遇到了异常。
应用程序缓存进度事件(3个中的2个)http://draft.mo2do.com/ 应用程序缓存错误事件:资源获取失败(-1)http://draft.mo2do.com/ 如果我也访问该域名,则应在离线模式下加载该应用程序。如果我直接访问URL,则应用程序会正常加载。
如何解决这个问题?
1个回答

0

缓存必须直接引用特定的资源,包括Javascript、CSS、HTML页面、图像等。从上面的内容可以看出,你已经做到了这一点。然而,只是在那里放置一个域名是不起作用的(你还需要引用所有你想离线的页面,如/s/_91665/Home也需要在其中)。

因此,有些地方出现了错误,但很难弄清楚你是什么意思:

如果我在浏览器中直接访问域名URL“http://draft.mo2do.com”,它在离线模式下没有打开404。

你能更清楚吗?你的意思是访问那个URL会导致404,还是页面本身有错误?

你确定你的缓存文件按预期工作吗?如果你的缓存文件有任何错误,你的离线应用程序就根本无法工作。这个页面提供了一些调试代码,可能会有所帮助:

调试HTML 5离线应用程序缓存


这是本地URL。我将通过在浏览器中键入“http://draft.mo2do.com”来启动我的Web应用程序。当我访问该URL时,它将重定向到http://draft.mo2do.com/s/_91665/Home此URL,并且我在缓存部分中也提到了缓存页面。主页URL正在被缓存,因此当我在离线模式下访问主页URL时,它会加载。但是,“http://draft.mo2do.com” URL没有被缓存,所以我得到404错误。如果我将该URL添加到缓存部分中,我会收到“资源获取失败”错误。我需要的是当我访问域名URL时,它也应该从离线缓存中加载。 - Raja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接