Bootstrap-sass Gem v.s。内容分发网络
Bootstrap-sass Gem v.s. CDN
Rails 教程中的各种 Ruby 鼓励灌输 bootstrap-sass gem。为什么这是约定而不是指向 CDN?
我在我的应用程序的 header 中包含:
<!-- 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 不是总是更快吗?
Rails' 教程建议 bootstrap-sass
gem 的可能原因只是为了方便;作为 Rails' 开发人员,我们习惯于在 Gemfile 中添加一行以集成第 3 方库。
gem 还有其他好处:在您完成 bundle install
之后,您将不需要互联网连接来加载开发环境的资产(无需连接到外部 CDN) .您也可以使用 SASS
覆盖 Bootstrap mixin 变量并自定义框架。
撇开这些好处,如果您不自定义 Bootstrap,则无需在生产中使用 boostrap-sass
gem。事实上,您关于客户可能已经拥有通用 JS/CSS 框架的 CDN 托管版本的论点当然是有效的。
简短回答:不要将 boostrap-sass
gem 视为惯例。这是自定义的一个很好的起点,但如果不需要自定义,则使用 CDN 是完全合理的。
使用 CDN 只会让您 CSS,将您的 HTML 文件硬连接到特定的 bootstrap 版本。相反,使用 bootstrap 的 SASS/LESS 版本允许您将语义 类 放在 HTML 上,并在语义 类 和 [= 之间建立联系25=] 在您的应用特定 SASS/LESS 文件中(使用 @import
、@extend
... 语句)
如果您明智地使用此技术,您最终会获得较小的下载量,因为您只导入 bootstrap 您在应用程序中实际使用的部分,并且您将完全分离关注点,让您在不接触 HTML 文件的情况下切换 sass/less 框架(理想情况下)。
Rails 教程中的各种 Ruby 鼓励灌输 bootstrap-sass gem。为什么这是约定而不是指向 CDN?
我在我的应用程序的 header 中包含:
<!-- 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 不是总是更快吗?
Rails' 教程建议 bootstrap-sass
gem 的可能原因只是为了方便;作为 Rails' 开发人员,我们习惯于在 Gemfile 中添加一行以集成第 3 方库。
gem 还有其他好处:在您完成 bundle install
之后,您将不需要互联网连接来加载开发环境的资产(无需连接到外部 CDN) .您也可以使用 SASS
覆盖 Bootstrap mixin 变量并自定义框架。
撇开这些好处,如果您不自定义 Bootstrap,则无需在生产中使用 boostrap-sass
gem。事实上,您关于客户可能已经拥有通用 JS/CSS 框架的 CDN 托管版本的论点当然是有效的。
简短回答:不要将 boostrap-sass
gem 视为惯例。这是自定义的一个很好的起点,但如果不需要自定义,则使用 CDN 是完全合理的。
使用 CDN 只会让您 CSS,将您的 HTML 文件硬连接到特定的 bootstrap 版本。相反,使用 bootstrap 的 SASS/LESS 版本允许您将语义 类 放在 HTML 上,并在语义 类 和 [= 之间建立联系25=] 在您的应用特定 SASS/LESS 文件中(使用 @import
、@extend
... 语句)
如果您明智地使用此技术,您最终会获得较小的下载量,因为您只导入 bootstrap 您在应用程序中实际使用的部分,并且您将完全分离关注点,让您在不接触 HTML 文件的情况下切换 sass/less 框架(理想情况下)。