【问题标题】:Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprocketsSass::SyntaxError:找不到或无法读取要导入的文件:bootstrap-sprockets
【发布时间】:2014-10-01 06:11:09
【问题描述】:

我在开发和生产部署中突然遇到此错误。

custom.css.scss

@import "bootstrap-sprockets";
@import "bootstrap";

错误(生产中)

rake aborted!
Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets.
Load paths:
/srv/www/myapp/releases/20141001060418/app/assets/images
/srv/www/myapp/releases/20141001060418/app/assets/javascripts
/srv/www/myapp/releases/20141001060418/app/assets/stylesheets
/srv/www/myapp/releases/20141001060418/vendor/assets/javascripts
/srv/www/myapp/releases/20141001060418/vendor/assets/stylesheets

【问题讨论】:

  • 好吧,如果我是你,我会检查 bootstrap-sprockets.css.scss 文件并确保它存在并准备好让 Sass 预编译 ;-)
  • 别忘了重启你的服务器

标签: ruby-on-rails twitter-bootstrap


【解决方案1】:

修改 Gemfile 后,别忘了用rails s重启服务器

重新启动 Rails 服务器就像一个魅力! :D

【讨论】:

  • 这为我解决了问题。 Bootstrap gem 需要重启服务器才能工作。
  • 我也重新启动了服务器,但我想知道为什么它不起作用?
【解决方案2】:

我通过升级 bootstrap-sass 解决了这个问题

gem 'bootstrap-sass', '3.2.0.2'

【讨论】:

  • 我需要进行类似的更改,但我建议您使用语法gem 'bootstrap-sass', '~> 3.2.0',因为它会为您提供次要版本更新,而不是将您锁定在特定版本中。
【解决方案3】:

在 Gemfile 中每次更改后请重新启动您的 Rails 服务器

rails server

【讨论】:

    【解决方案4】:

    对于 Sass 版本的 Bootstrap 5 在 rails before 6 的版本中 使用

    gem `bootstrap`
    

    对于 Bootstrap 3 和 2 的 Sass 版本确保您没有

    gem 'bootstrap'  # Remove this line
    gem 'bootstrap-sass'
    

    应该是

    gem 'bootstrap-sass'
    

    【讨论】:

    • 我遇到了类似的问题,但就我而言,我的 Gemfile 中有“bootstrap-sass”和“sass-rails”。像你在这里建议的那样删除“sass-rails”并只留下“bootstrap-sass”在这种情况下也有效。
    【解决方案5】:

    我通过以下步骤解决了它:

    1. 列表项
    2. 在我的“app/assets/stylesheets/”中复制“bootstrap.css”(它丢失了)
    3. gem install autoprefixer-rails(同时修改 Gemfile)
    4. gem install sprockets(也修改 Gemfile)
    5. 捆绑安装
    6. 重启服务器(不只是刷新页面)

    【讨论】:

    • restart server step 的加分项。
    • 正在重新启动服务器.. 哦,我的!
    【解决方案6】:

    这就是我解决问题的方法。

    转到Bootstrap for Sass Github page 并按照说明操作:

    1. 将以下内容添加到 Gemfile

      gem 'bootstrap-sass', '~> 3.3.6' gem 'sass-rails', '>= 3.2'

    2. 运行命令 bundle install

    3. 启动/重启服务器

      导轨

    此外,请确保文件具有 .scss 扩展名(或 .sass 用于 Sass 语法)。如果您刚刚生成了一个新的 Rails 应用程序,它可能会附带一个 .css 文件。如果这个文件存在,它将被提供而不是 Sass,所以重命名它。 然后,删除所有 *= require_self 和 *= require_tree 。 sass 文件中的语句。相反,使用 @import 来导入 Sass 文件。

    【讨论】:

    • 感谢“重启服务器”这一行,我在上面卡了 4 个小时。
    【解决方案7】:

    我观察到了同样的行为。就我而言,我已经删除了 gem 'bootstap-sass' 的版本并且它有效。导致问题的 gem 版本可能存在兼容性问题。

    宝石文件

    gem 'bootstrap-sass'
    

    在 gem 文件中进行更改后,执行以下命令:

    bundle install
    

    如果服务器已经在运行,则按“CTRL+C”将其停止并重新启动服务器

    rails s
    

    【讨论】:

      【解决方案8】:

      在您的 Gemfile 中,您需要添加 bootstrap-sass gem,并确保 sass-rails gem 存在 - 它默认添加到新的 Rails 应用程序中。

      gem 'bootstrap-sass', '3.3.7'
      gem 'sass-rails', '5.0.6'
      gem 'rails', '5.0.0'
      

      捆绑安装并重新启动服务器以使文件通过管道可用。 在 app/assets/stylesheets/application.scss 中导入 Bootstrap 样式:

      // "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
      @import "bootstrap-sprockets";
      @import "bootstrap";
      

      bootstrap-sprockets 必须在引导之前导入图标字体才能工作。 确保文件具有 .scss 扩展名(或 .sass 用于 Sass 语法)。如果您刚刚生成了一个新的 Rails 应用程序,它可能会附带一个 .css 文件。如果这个文件存在,它将被提供而不是 Sass,所以重命名它:

      $ mv app/assets/stylesheets/application.css 收件人: app/assets/stylesheets/application.scss

      然后,从 sass 文件中删除所有 *= require_self*= require_tree . 语句。相反,使用 @import 导入 Sass 文件。 例如

      *= require_tree .
      *= require_self
      

      收件人:

      @import require_tree .
      @import require_self
      

      不要在 Sass 中使用*= require,否则您的其他样式表将无法访问 Bootstrap 的 mixins 或变量。 Bootstrap JavaScript 依赖于 jQuery。如果您使用的是Rails 5.1+,请将 jquery-rails gem 添加到您的 Gemfile:

      gem 'jquery-rails'
      
      $ bundle install
      

      中需要 Bootstrap Javascript

      app/assets/javascripts/application.js:

      //= require jquery
      //= require bootstrap-sprockets
      

      bootstrap-sprocketsbootstrap 不应同时包含在

      应用程序.js

      bootstrap-sprockets 提供单独的 Bootstrap Javascript 文件(例如,alert.js 或 dropdown.js),而 bootstrap 提供包含所有 Bootstrap Javascript 的串联文件。

      这将修复错误

      Copied @github
      

      【讨论】:

      • 这是一个很好的答案,但你已经复制粘贴了 gems 自述文件。
      【解决方案9】:

      此错误主要出现在 rails 3.2.x 版本中。 如果您使用的是 rails 3.2 版,则必须在 gem 文件中指定一个特殊版本,如下所示:

      gem 'rails', '3.2.0'
      gem 'bootstrap-sass', '3.2.0.2'
      

      它将解决rails -v '3.2.0'的问题

      【讨论】:

        【解决方案10】:

        将其放入 gem 文件中

        gem 'bootstrap-sass', '~> 3.3.5'
        gem 'sass-rails', '>= 3.2'
        

        然后运行$ bundle install

        重启服务器。

        【讨论】:

          【解决方案11】:

          如果您在运行集成测试时收到此消息,请确保您的资产 gem 包含在测试组中。

          例如,改变:

          group :assets do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

          收件人:

          group :assets, :test do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

          【讨论】:

            【解决方案12】:

            我遇到了同样的问题

            sass::syntaxerror: file to import not found or unreadable: config/variables.
            

            ,我打开了一个新的 css 文件(我称之为 custom.css),然后将所有 css 复制到文件中。在 application.css 我删除了

            @import "config/variables" 加上所有其他 @imports

            这对我有用,我希望它也对你有用!

            【讨论】:

              【解决方案13】:

              确保在将此 gem 添加到 Gemfile 后运行以下命令 把它放在你的 Gemfile 中

                  gem "bootstrap-sprockets", "~>3.3"
                  gem "bootstrap"
              

              现在停止您的服务器并运行以下命令:

                  bundle install
                  rails server
              

              重新启动您的服务器。刷新您的浏览器,您应该会立即看到更改。 在生产环境中,您可能必须运行此命令来预编译您的资产:

                  bundle exec bin/rake assets:precompile
              

              它对我有用。希望这对您有所帮助。

              【讨论】:

              • 当我尝试这样做时,我得到了Could not find gem 'bootstrap-sprockets' in any of the gem sources listed in your Gemfile.
              • 你的 Gemfile 中应该有 gem
              【解决方案14】:

              我在开发环境中也遇到了类似的错误:

              Error Image

              我解决了这个问题-

              1. 在我的 gemfile 中,我添加了它们 -

                gem 'bootstrap', '~> 4.2.1'

                gem 'jquery-rails'

              2. 在 application.js 文件中,添加这些 -

                //= 需要 jquery3

                //= 需要弹出器

                //= 需要引导链轮

              3. 在扩展名为.scss的文件中,只需添加-

                @import "bootstrap";

                之后,只需运行 bundle install

              【讨论】:

                【解决方案15】:

                我通过删除解决了我的问题

                gem 'bootstrap'
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-06-01
                  • 1970-01-01
                  • 2019-08-08
                  • 2014-06-15
                  • 2014-03-30
                  • 2018-12-22
                  • 2017-10-04
                  相关资源
                  最近更新 更多