【问题标题】:Rails app: using a gem vs. including source with Twitter BootstrapRails 应用程序:使用 gem 与包含 Twitter Bootstrap 的源
【发布时间】:2013-04-07 21:46:48
【问题描述】:

我浏览了我的应用程序,当我通过 gem 包含 Twitter Bootstrap 源时,我无法找到它的确切位置。例如,如果我想查看 Bootstrap .css,我该如何找到它?

据我了解,将其作为 gem 包含的替代方法是直接下载并包含源代码,对吗?一种方法比另一种更好吗?

最后,如果我想修改 Bootstrap css,最好的方法是什么?如果我的应用程序中有源代码,我想我可以进去修改一些东西。如果我将它作为宝石包含在内呢?

非常感谢您对它的工作原理进行一些澄清。将源代码放在我的应用程序目录中的某个地方是有道理的,我可以相对于 .html 文件指向它......但是使用 Gemfile 我觉得事情在一个小黑盒子里......

【问题讨论】:

  • 因为我现在已经包含了引导程序,所以我使用了“gem bootstrap-sass”,并且我已经在任何特定环境之外完成了这项工作。该视频提到将其包含在资产组中。我需要调整它吗?此外,我实际上并没有运行任何特定的引导安装程序,除了捆绑安装。可能由于这个原因,我没有安装实际的 Twitter 文件夹或其他资产......(我在 Rails 教程中已经做到了这一点,除了在 .css 文件中包含 gem 和 @import 标记外,没有提到其他任何内容)

标签: ruby-on-rails twitter-bootstrap gem gemfile


【解决方案1】:

我绝对同意让 Bootstrap 文件位于您的应用程序之外并不令人印象深刻。

在这种情况下,我推荐以下工作流程:

  1. 从 Github 克隆 repo bootstrap-sass 或下载 zipball。它是 Bootstrap 到 Sass 的官方端口,并且由同一团队不断更新。

  2. 仅复制 Sass 部分(文件名以下划线开头的部分)到app/vendor/assets/stylesheets。 Javascript 和图像进入app/vendor/assets 下各自的目录。这将提醒您远离编辑这些文件,同时保持应用程序的资产目录清洁。每当您想仔细观察它们时,它们就近在咫尺。

  3. 将bootstrap.scss 复制到app/assets/stylesheets 并随意修改。一定要关闭所有不使用的功能,因为随身携带这些东西意味着 CSS 文件比你需要的要大。

  4. 自定义您的 Boostrap 变量和类,并在清单中的 Bootstrap 文件之后加载它们,就像使用 gem 一样。例如,假设您将自己的变量放入_overrides.scss。你的application.css.scss 看起来像这样:

    @import "bootstrap";
    @import "overrides";
    

就是这样。这就是 app/vendor/assets 的用途!

【讨论】:

  • 这真的很有帮助。感谢您展示使用这些文件的替代方法。这就引出了另一个问题。当您说“在您的应用程序之外存在”时,您能告诉我它们仅包含在 gem 中的确切位置吗?这可能是我对宝石的工作原理缺乏了解。它们是否与我的 ruby​​/rails gem 一起存储在某个地方,然后在运行时由应用程序调用?
  • Gems 安装在不同的位置,具体取决于您是使用 RVM 还是直接使用 Ruby 二进制文件。但很容易发现这一点。只需键入gem which 后跟gem 的名称,您就会看到它所在的位置。继续尝试gem which rails
  • 嘿@depa 这正是我想要做的,但是我对一些事情感到困惑,如果你能帮助我,我将不胜感激。 1. bootstrap-sass-master/assets/stylesheets 的全部内容(包括子目录)是否都放到了app/vendor/assets/stylesheets 中,应该放在各自的子目录中还是放在一起? 2. 目录下不存在bootstrap.scss,你的意思是_bootstrap.scss,是不是app/vendor/assets/stylesheets中唯一没有下划线的scss文件?
  • 3.你能详细说明你的最后一个项目吗?我是否应该在 app/assets/stylesheets 中创建一个 _overrides.scss 文件夹并将我使用的任何引导程序覆盖放在那里? @depa
  • @thesowismine 是的,就是这样。根据您有多少自定义样式,一个文件可能就足够了。但是您也可以使用多个文件并将它们全部放在同一个文件夹中。重要的是将您的自定义样式与框架文件分开。
【解决方案2】:

我对 RoR 比较陌生,发现有几种不同的方法可以实现引导程序。我尝试了 gem thomas-mcdonald / bootstrap-sass 并让它工作得很好。 但我想更深入地了解引导文件到底在做什么以及代码是什么样的。 上面的答案非常有帮助。 我只是想补充一点,这个bootstrap 3 video 被证明非常有用并且对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多