我想知道如果无法到达CDN,是否可以提供备用链接。例如,引导程序提供要从CDN下载的标签,如果无法访问,则提供本地存储的引导程序:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<!-- if cannot be downloaded -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/bootstrap.min.js"></script>
我想使用此模型,因为浏览器缓存CDN文件,因此可以通过使用它来提高速度(而且它们的下载时间可能比我的服务器要好)。尽管有人通过本地网络连接但没有连接到Internet并且没有这些缓存版本之一的可能性很小,但我还是想替代一下。这可能吗?
最佳答案
http://eddmann.com/posts/providing-local-js-and-css-resources-for-cdn-fallbacks/
该链接回答了问题的两个部分。
对于您的示例,使用fallback.js:
HTML:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
JS:
cfg({
"libs": {
'css$bootstrap': {
'exports': '.col-xs-12',
'urls': 'css/bootstrap.min.css'
},
'bootstrapjs': {
'urls': [
'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js',
'js/bootstrap.min.js'
]
}
}
});
req(function(css$bootstrap, bootstrapjs){ //Everything is loaded });
看来上面的文章在fallback.js API上有些过时,因此我包括了基于当前状态的示例。 https://github.com/dolox/fallback/blob/master/README.md