我应该从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有很多很好的理由 :
- 它增加了可用的并行性 。
- 这增加了将有一个caching命中的机会。
- 它确保有效载荷将尽可能小 。
- 它减less了您的服务器使用的带宽量。
- 它确保用户将得到一个地理上密切的反应。
对于你的版本问题,任何CDN都值得在它的权重,让你瞄准一个特定版本的库,所以你不会无意中介绍每个版本的重大变化。
取决于具体的网站。
你有很多用户吗? 你关心带宽使用吗? 性能是一个问题(CDN 可以加快响应)?
你可以链接到一个特定的版本:
bootstrap/3.1.1/css/bootstrap.min.css
要么
bootstrap/3.2.0/css/bootstrap.min.css
这样,你不必担心图书馆的更新,这是一个更好的做法,以保持更新。
我不确定关于开发人员select的确切统计数据是什么,但您可以在这里看看,看到数十亿的请求被发送到Bootstrap CDN,这意味着它是健壮和安全的使用。