如果CDN不工作,如何加载本地文件

时间:2013-04-18 07:46:40

标签: javascript jquery asp.net cdn

我正在使用一些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无法正常工作,并从本地下载相应的文件。

请帮忙

提前致谢

2 个答案:

答案 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应该故障转移到您的源服务器并自动从那里提供静态文件。