我应该从CDN使用Bootstrap还是在我的服务器上复制一份?

使用Twitter Bootstrap的最佳做法是什么,从CDN引用它还是在我的服务器上创build本地副本?

自Bootstrap不断发展,恐怕如果我参考CDN,用户会看到不同的网页,一些标签甚至可能会破坏。 大多数人的select是什么?

为什么不是两个¯\ _(ツ)_ /¯? Scott Hanselman写了一篇关于如何使用CDN来提高性能的文章,但是如果CDN崩溃的话,优雅地回落到本地副本 。

特定于引导,您可以执行以下操作从具有本地回退的CDN加载 :

<head> <!-- Bootstrap CSS CDN --> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css"> </head> <body> <!-- APP CONTENT --> <!-- jQuery CDN --> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <!-- jQuery local fallback --> <script>window.jQuery || document.write('<script src="/local/jquery.min.js"><\/script>')</script> <!-- Bootstrap JS CDN --> <script src="bootstrap/3.0.3/js/bootstrap.min.js"></script> <!-- Bootstrap JS local fallback --> <script>if(typeof($.fn.modal) === 'undefined') {document.write('<script src="/local/bootstrap.min.js"><\/script>')}</script> <!-- Bootstrap CSS local fallback --> <div id="bootstrapCssTest" class="hidden"></div> <script> $(function() { if ($('#bootstrapCssTest').is(':visible')) { $("head").prepend('<link rel="stylesheet" href="/local/bootstrap.min.css">'); } }); </script> </body> 

*您也可以使用YepNope或fallback.js进行相同的testing
*每Flash的评论和这个解决scheme ,更新的答案检查.visible类而不是testingrgb(51, 51, 51) .visible rgb(51, 51, 51)


对于最佳实践中的问题, 在生产环境中使用CDN有很多很好的理由

  1. 它增加了可用的并行性
  2. 这增加了将有一个caching命中的机会。
  3. 它确保有效载荷将尽可能
  4. 它减less了您的服务器使用的带宽量。
  5. 它确保用户将得到一个地理上密切的反应。

对于你的版本问题,任何CDN都值得在它的权重,让你瞄准一个特定版本的库,所以你不会无意中介绍每个版本的重大变化。

取决于具体的网站。

你有很多用户吗? 你关心带宽使用吗? 性能是一个问题(CDN 可以加快响应)?

你可以链接到一个特定的版本:

bootstrap/3.1.1/css/bootstrap.min.css

要么

bootstrap/3.2.0/css/bootstrap.min.css

这样,你不必担心图书馆的更新,这是一个更好的做法,以保持更新。

我不确定关于开发人员select的确切统计数据是什么,但您可以在这里看看,看到数十亿的请求被发送到Bootstrap CDN,这意味着它是健壮和安全的使用。