Bootstrap-sass Gem v.s. CDN

时间:2015-10-12 04:45:55

标签: css ruby-on-rails twitter-bootstrap cdn

各种Ruby on Rails教程鼓励灌输bootstrap-sass gem。为什么这是一个惯例而不是指向CDN?

我已加入我的应用标题:

  <!-- BOOTSTRAP CSS 3.3.5 CDN: --> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">

在页脚中:

  <!-- BOOTSTRAP JS 3.3.5 CDN --><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" type="text/javascript"></script>

假设我一直在使用连接到互联网的开发盒工作:使用bootstrap gem而不仅仅是指向CDN的原因是什么?是不是指向客户端可能已经缓存文件的CDN总是更快?

2 个答案:

答案 0 :(得分:11)

Rails教程提出bootstrap-sass宝石的可能原因只是方便;作为Rails的开发人员,我们习惯于在我们的Gemfile中添加一行来集成第三方库。

对gem有额外的好处:执行bundle install之后,您将不需要Internet连接来加载开发环境的资产(无需连接到外部CDN)。您还可以使用SASS覆盖Bootstrap mixin变量并自定义框架。

除了这些好处之外,如果您没有自定义Bootstrap,则无需在生产中使用boostrap-sass gem。事实上,关于客户可能已经拥有CDN托管版本的常见JS / CSS框架的论证当然是有效的。

简短回答:不要将boostrap-sass宝石视为惯例。这是定制的一个很好的起点,但如果不需要定制,那么使用CDN是完全合理的。

答案 1 :(得分:-1)

使用CDN只会为您提供CSS,将HTML文件硬连接到特定的引导程序版本。相反,使用SASS / LESS版本的引导程序允许您在HTML上放置语义类,并在特定于应用程序的SASS / LESS文件中建立语义类和Bootstrap之间的连接(使用@import,{{1 }} ...语句)

如果你明智地使用这种技术,你将最终获得较小的下载量,因为你只导入你在应用程序中实际使用的引导程序部分,并且你可以清楚地分离关注点,允许你切换sass / less框架没有触及你的HTML文件(理想情况下)。