【问题标题】:How to load local files if CDN is not working如果 CDN 不工作,如何加载本地文件
【发布时间】:2013-04-11 05:35:15
【问题描述】:

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

请帮忙

提前致谢

【问题讨论】:

  • 不是CDN的问题。您有两条不同的本地路径。
  • 我已经写了两个本地路径,但我想做这样的例子:如果 x cdn 不工作,那么它只会下载 x.local 而不是其他的。如果 2 个 cdn js 不起作用,那么它只会下载 2 个而不是全部如何执行此操作

标签: javascript jquery asp.net cdn


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您可以使用以下脚本:

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

    希望有用!

    【讨论】:

    • 如何将它用于jQuery和jQuery UI以外的脚本?
    • @AbhinandanN.M.随时提出问题。但同样的逻辑,加载的脚本应该为 window 分配一些东西或创建一个你可以验证它是否存在的变量。
    • 我故意创建并出错,它不会退回到第 2 步。不起作用。
    猜你喜欢
    • 2012-01-16
    • 2017-04-14
    • 2019-11-13
    • 2021-11-22
    • 2011-09-23
    • 2013-09-08
    • 2014-02-11
    • 2021-05-23
    • 2011-07-12
    相关资源
    最近更新 更多