【问题标题】:Can't find application.css.scss in my Rails app在我的 Rails 应用程序中找不到 application.css.scss
【发布时间】:2023-04-11 08:15:02
【问题描述】:

我正在安装 bootstrap-sass gem,我需要将 Bootstrap 导入到 application.css.scss 中,例如:

@import "bootstrap";

但是我在资产/样式表文件夹中找不到它。我只是创建它吗?我的 Rails 应用会加载此文件吗?

我确实安装了 sass-rails:

gem 'sass-rails', '~> 4.0.0'

我把它放在了我的 styles.css.scss 中:

@import 'bootstrap';
@import 'bootstrap/responsive';

宝石文件:

group :assets do
  gem 'bootstrap-sass', '~> 2.3.2.0'
end

非常感谢任何帮助。

【问题讨论】:

  • 确保您没有 application.css(不是:没有 .scss 扩展名),然后创建 application.css.scss。如果您添加@import 语句,它应该可以工作。如果您遇到任何错误,请尝试并回复。
  • @AnirudhanJ 我收到此错误:“找不到或无法读取要导入的文件:引导程序。”我确实安装了gem。之后我还需要做什么吗?
  • 好的。这意味着您的 application.css.scss 正在被读取。如果您在 rails 3 中,在资产组中声明 gem 将使 gem 仅在开发环境中可用。请参阅stackoverflow.com/a/7675331/846970。这对你来说可能是个问题吗?如果不能,您能提供更多信息吗?
  • 好的。毫无疑问,这将是我自己无法发现的。感谢一百万@AnirudhanJ!
  • 成功了吗?问题出在 Gemfile 中?

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

从 cmets 转发我的答案。

默认情况下,rails 应用程序中不存在 application.css.scss,即使包含 sass-rails。您可以删除 application.css 并创建 applicaiton.css.scss 并使用它。

此外,在 rails 3 中,任何在资产组中声明的 gem 都将仅包含在开发和测试环境中。

rails 3 中的 application.rb。

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

rails 4 中的 application.rb。

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)

尝试将 gem 声明移出资产组,它应该可以工作。

【讨论】:

    【解决方案2】:

    从 Rails 3.1 开始,新的 Rails 项目将已经配置为使用 Sass(因此,如果您使用的是 3.1,则无需添加该 gem)。如果您要升级到 Rails 3.1,您需要将以下内容添加到您的 Gemfile。

    您可以在 stylesheets 文件夹中创建它,并在其中添加以下行。

    /* ...
    *= require_self
    *= require_tree .
    */
    

    然后在你的视图中添加

    <%= stylesheet_link_tag    "application", :media => "all" %>
    

    还要确保您关注此guide

    尝试将“bootstrap-sass”的require语句添加到config.ru文件。一个工作的 config.ru 如下所示。

    # This file is used by Rack-based servers to start the application.
    
    require ::File.expand_path('../config/environment',  __FILE__)
    require 'bootstrap-sass' #require statement of bootstrap-sass
    run Rails.application
    

    【讨论】:

    • 当我这样做时,我得到:“找不到或无法读取要导入的文件:引导程序。加载路径:”它显示了资产路径。
    • 你的 GemFile 中有 gem 'bootstrap-sass' 吗?
    • 顺便说一句,我在 Rails 4.0.2 上。是的,我愿意
    • 检查我的答案中的链接
    • 是的,这正是我使用的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2016-07-24
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多