如果远程文件不可用,我如何强制谷歌浏览器从本地缓存下载一些.js / .css / images(如果Chrome配置为使用Squid代理,即使cdn也将为我提供此文件)不可用)。
例如,我加载使用jquery库的http://example.com,位于CDN中,地址为http://cdn-example.com/js/jquery.latest.js
突然cdn-example.com变得不可用/响应非常缓慢/响应404错误/等。
http://example.com仍然可用但由于未加载jquery而无法使用。
答案 0 :(得分:1)
这真的发生了吗? CDN的重点在于它应该是高度冗余的并且始终可用。如果群集中的一台主机出现故障,您的请求将被路由到另一台可以提供请求的主机。
我不知道有什么方法可以做你要求的事情,但如果你真的关心它,你可以尝试这样的事情:
<html>
<head>
...
<script src="//cdn.com/js/jquery.latest.js"></script>
<script>window.jQuery || document.write('<script src="//otherplace.com/js/jquery.js"></script>')</script>
...
</head>
尝试从第一个URL加载它,如果由于某种原因失败,下一个脚本块会检查是否定义了jQuery(它不会失败),如果是,则写入新的脚本标记到文档,触发它从后备资源加载。