我正在使用一些CDN js和css文件。
我在谷歌搜索了如果CDN不能正常工作,如何加载本地数据。
我找到了一个像这样写的好链接
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='JS/Plugins/jquery-1.8.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
是的,它的工作,但后来我尝试了另一个CDN网络,然后它不从本地下载。如果CDN不工作,那么它在我的页面中显示错误,并且由于缺少该js文件,页面无法正常工作。 意思是:
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='Include/JS/JqueryPlugin/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
在上述情况下,当上述CDN不工作时,本地jquery.min.js没有下载。
类似地如何处理CSS(在Google中搜索并找不到任何好的解决方案)。
如何知道哪个CDN无法正常工作,并从本地下载相应的文件。
请帮忙
提前致谢
答案 0 :(得分:9)
您可以使用以下脚本:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script> window.jQuery || document.write('<script src="/scripts/jquery.1.9.1.min.js"><\/script>')</script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<script> window.jQuery.ui || document.write('<script src="/scripts/jquery-ui.min.js"><\/script>')</script>
希望有用!
答案 1 :(得分:1)
这可以通过DNS设置实现,而无需更改代码。
基本上,您正尝试在CDN和原始服务器之间进行故障转移。如果CDN失败,请求将故障转移到您的源服务器。一种选择是将DNS级别故障转移与主要CDN CNAME一起使用,备份到源服务器主机名。
您还在CDN和原始服务器的DNS设置中包含了healthcheck。一旦健康检查因CDN而失败,DNS应该故障转移到您的源服务器并自动从那里提供静态文件。