以下是我的缓存文件:
CACHE MANIFEST
# 2013-11-22 14:38:54735779
CACHE:
../../../../assets/img/background_01.jpg
../../../../assets/img/background_02.jpg
../../../../assets/img/background_03.jpg
../../../../assets/img/datepicker_icon.png
../../../../assets/js/jquery-1.10.2.min.js
../../../../assets/js/jquery-ui-1.10.0.custom.min.js
../../../../assets/js/bootstrap.min.js
../../../../offline/offline.js
../../../../offline/offline_external.js
NETWORK:
*
在谷歌浏览器中(当互联网处于活动状态时),我能够看到所有上述指定的文件都被缓存。 Google Chrome可以显示缓存的项目。但是,当我尝试关闭互联网并刷新页面时,Chrome会报告以下错误:
应用程序缓存错误事件:清单提取失败(-1)未捕获 ReferenceError:未定义jQuery (匿名函数)GET http://mywebsite.com/app/assets/js/jquery-1.10.2.min.js
Jquery的路径是正确的,因为我能够点击链接并将其导航到服务器中的正确位置,所以我无法解决问题。
有人可以告诉我哪里出错了吗?
我在本地服务器上尝试了相同的设置,它可以正常工作。
我的.htaccess设置如下:
AddType text/cache-manifest manifest
AddType application/octet-stream csv
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^([^\.]+)\.myswebsite\.com$ [NC]
请注意我已经尝试了
AddType text / cache-manifest manifest
和
AddType text / cache-manifest .manifest
它没有解决问题。当我在互联网关闭时刷新页面时,离线仍然无效。
答案 0 :(得分:1)
您应该使所有资产以/相对于基础域开头,您的文件应如下所示:
CACHE MANIFEST
# 2013-11-22 14:38:54735779
CACHE:
/assets/img/background_01.jpg
/assets/img/background_02.jpg
/assets/img/background_03.jpg
/assets/img/datepicker_icon.png
/assets/js/jquery-1.10.2.min.js
/assets/js/jquery-ui-1.10.0.custom.min.js
/assets/js/bootstrap.min.js
/offline/offline.js
/offline/offline_external.js
NETWORK:
*
答案 1 :(得分:0)
不确定您是否找到了解决此问题的方法,但我遇到了同样的问题。事实证明我在加载之前尝试访问javascript资源。
我通过确保访问javascript资源低于对页面上javascript文件的引用而解决了这个问题,并且我还将其包装在" $(document).ready(function(){})中"调用
$(document).ready(function () {
// access the resource here..
})
这似乎为我解决了问题。我不太清楚为什么页面会更加宽容"在线模式。