可以在cache-manifest中包含外部文件吗?

Ric*_*ard 14 jquery html5 caching offline offline-browsing

我正在构建一个离线Web应用程序,并希望使用缓存清单.目前我的缓存清单看起来像这样:

CACHE MANIFEST
# Change the version number below each time we update a resource.
# Rev 1
index.html
photo.html
js/photo.js
css/photo.css
http://code.jquery.com/jquery-1.6.1.min.js
http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js
http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css
http://maps.google.com/maps/api/js?sensor=false&region=GB
Run Code Online (Sandbox Code Playgroud)

有没有理由不在缓存清单中包含外部的,CDN托管的jQuery,jQuery Mobile和Google Maps文件?

我想不到一个,但我想我会问那些比我自己更聪明:)

Jan*_*bal 19

是.实际上,您必须在清单中包含外部图像,或者即使网络连接可用,某些浏览器也根本不会加载它们!(除非您提供NETWORK部分,这可能导致每次都提取图像,绕过常规浏览器缓存.)

图像被缓存(至少通过Firefox,没有测试Chrome).

规范明确指出:

脱机应用程序缓存清单可以使用绝对路径甚至是绝对URL

http://manifest-validator.com/还会将包含外部URL的清单报告为OK.

我不是100%肯定这也适用于脚本,但使用Firefox的快速测试看起来像脚本按预期缓存.


Div*_*ian -7

你不能。缓存清单仅适用于来自同一域的文件。如果您想将跨域资源列入白名单,则需要从您的域进行代理。

  • 这个答案至少对于图像来说是**不正确的**,但对于脚本来说可能也是如此(请参阅我的答案以获取来源)。请再次检查并提供来源或删除/更正答案,因为这会出现在 Google 搜索中并且非常令人困惑。 (6认同)