8

我正在使用一些 CDN js 和 css 文件。

如果 CDN 不工作,我在 Google 中搜索了如何加载本地数据。

我找到了一个这样写的好链接

<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 不工作并从本地下载相应的文件。

请帮忙

提前致谢

4

2 回答 2

13

您可以在下面使用此脚本:

<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>

希望有用!

于 2013-04-19T03:15:18.707 回答
1

这可以通过 DNS 设置实现,无需更改代码。

基本上,您正在尝试在 CDN 和源服务器之间进行故障转移。如果 CDN 失败,请求将故障转移到您的源服务器。一种选择是使用 DNS 级别的故障转移,主要是 CDN CNAME,备份到您的原始服务器主机名。

您还在 CDN 和源服务器的 DNS 设置中包含健康检查。一旦 CDN 的健康检查失败,DNS 应该故障转移到您的源服务器并自动从那里提供静态文件。

于 2016-12-10T07:17:20.020 回答