在我的Rails应用程序中找不到application.css.scss

时间:2013-12-29 16:14:44

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

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

@import "bootstrap";

但我在我的assets / stylesheets文件夹中找不到它。我只是创造它吗?我的Rails应用程序会加载此文件吗?

我确实安装了sass-rails:

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

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

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

的Gemfile:

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

重新发表评论的答案。

默认情况下,即使包含sass-rails,

application.css.scss也不会出现在rails app中。您可以删除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

application.rb in rails 4。

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

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

答案 1 :(得分:1)

从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