【问题标题】:Rails + Twitter Bootstrap: File to import not found or unreadable: twitter/bootstrapRails + Twitter Bootstrap:找不到或无法读取要导入的文件:twitter/bootstrap
【发布时间】:2013-04-03 10:22:32
【问题描述】:

我正在尝试使用 Twitter Bootstrap(gem twitter-bootstrap-rails)设置 Rails 应用程序,但我仍然无法克服错误

File to import not found or unreadable: twitter/bootstrap.

我在 gem 的官方 Github 上发现了这个问题,但那里的解决方案都没有对我有用。 这是我的设置: 宝石文件

gem "twitter-bootstrap-rails"
gem 'font-awesome-rails'
gem 'sass-rails',   '~> 3.2.3'
group :assets do
  #gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'therubyracer', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
end

application.css

 *= require_self
 *= require bootstrap_and_overrides
 *= require font-awesome
 *= require_tree .

bootstrap_and_overrides.css.sass

@import "twitter/bootstrap";
@import "twitter/bootstrap/bootstrap";
@import "twitter/bootstrap/responsive";

// Font Awesome
@import "fontawesome";

// Glyphicons
@import "twitter/bootstrap/sprites.scss";

正确设置我缺少什么?

谢谢

【问题讨论】:

  • 你跑rails generate bootstrap:install了吗?
  • 是的,我已经运行rails generate bootstrap:install,但它没有帮助我。
  • 很抱歉没有正确理解语义,我认为我的答案是一个解决方案。无论如何,还有其他一些事情,在我的应用程序中,我的文件为 bootstrap_and_overrides.css.less,而不是 sass。我也有gem 'less-rails'。最后,我在 application.js //= require twitter/bootstrap 中有一个要求。我没有的一件事是@import "twitter/bootstrap";
  • 我也尝试过使用 SASS 和 LESS,但结果相同。我注意到如果我使用这个版本的 gem:gem 'twitter-bootstrap-rails', '~> 2.0.1.0',那么它就可以工作了。但是出现了另一个问题 - 旧的 javascript。
  • 这个文件名看起来不正确“bootstrap_and_overrides.css.sass”。应该是scss文件吧?

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


【解决方案1】:

我们遇到了同样的问题,我刚刚重新启动了 rails 服务器,它就可以工作了

【讨论】:

  • 有时,在 Rails 中让我头疼的是一些简单的小事。感谢您的提醒
【解决方案2】:

如果您已经尝试关闭服务器并重新启动它,那么您的问题可能是从您的 sass 文件生成的缓存 css 文件。造成这种情况的原因可能是一些实时重新加载,它预先渲染了几个 scss/haml 类型的文件。如果不是这样,那么

  1. 阅读错误信息并确定导致错误的 scss 文件。
  2. 找到沿 sass 文件生成的 css 文件(即 custom.css.scss 将生成 custom.css)。
  3. 删除该文件,刷新页面,如果该文件删除资产/样式表和临时/缓存下的整个缓存)

【讨论】:

    【解决方案3】:

    出于某种原因,我必须明确要求 gem 让它工作。正如this github issue comment 中建议的那样,用 bootstrap-sass 修复类似的错误,很可能 gem 没有自动加载。将 require "twitter-bootstrap-rails 添加到例如 config/application.rb 文件以明确要求它。

    【讨论】:

      【解决方案4】:

      将 bootstrap-sass gem 降级到 v2.3.2,如下所示: gem 'bootstrap-sass', '2.3.2'

      我已经完成了升级引导 gem 的包升级。这个(版本降级)为我解决了这个问题。

      【讨论】:

        【解决方案5】:

        我的工作方式是简单地更改 Twitter Bootstrap gem - 我使用了 bootstrap-sass gem,其中设置了 Github 页面上描述的所有内容,我没有发现任何问题。

        【讨论】:

          【解决方案6】:

          您是否尝试编译资产?

              rake assets:precompile
          

          【讨论】:

            【解决方案7】:

            我通过在我的 Gemfile 中添加 gem 'bootstrap-sass', '3.0.2.1' 解决了这个问题(根据最近的文档)。确保之后运行bundle install

            【讨论】:

              【解决方案8】:

              我在寻找 Michael Hartl 的 RailsTutorial.org 程序的问题时发现了这个回复。我无意中允许将 sprockets gem 升级到 2.12.1(它被锁定在 Gemfile.lock 中)。强制将其降级到 2.11.0 修复了此错误并允许较旧的 bo​​otstrap-sass (2.3.2.0) gem 正常工作。

              回去学习!!

              【讨论】:

                【解决方案9】:

                这里没有什么对我有用。我放弃了,下载了 Bootstrap 本身,将文件放在我的资产中,并将它们包含在我的 CSS 中。这样就解决了。

                【讨论】:

                  【解决方案10】:

                  在资产组中添加以下 gem 并捆绑安装

                  gem "therubyracer"
                  gem "less-rails"
                  gem "twitter-bootstrap-rails"
                  

                  【讨论】:

                  • 我已经尝试过了,但还是一样,不明白为什么应用程序找不到 Bootstrap 的东西。目前正在尝试bootstrap-sass gem。
                  【解决方案11】:

                  尝试添加

                  gem 'sass-rails'

                  到你的 Gemfile

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-07-04
                    • 1970-01-01
                    • 2019-08-08
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多