1

我想使用 compass_twitter_bootstrap。这是我所做的:

1)

我的宝石文件:

gem 'compass'
gem 'compass-rails'
gem 'compass_twitter_bootstrap'

2)

我的 compass.rb 在 config 文件夹下:

require 'compass_twitter_bootstrap'
project_type = :rails
http_path = "/"
css_dir = "public/stylesheets"
sass_dir = "public/stylesheets/sass"

3)

我在 public/stylesheets/sass 下创建了一个 scss 文件,并添加了 @import "compass_twitter_bootstrap"; 在文件的顶部。

4)

我还将 stylesheet_link_tag 添加到我的 html.erb 文件中。

但是当我运行服务器时,我得到了这个错误:

语法错误,找不到要导入的文件或无法读取:compass_twitter_bootstrap

加载路径:my_project_directory/public/stylesheets/sass
4

1 回答 1

1

这是 Rails 应用程序还是 Rails 插件?

如果它是 Rails 插件,这个 Stackoverflow 问题解释说它与 Dummy 应用程序在 Gemfile 中查找的内容有关。基本上,不要group :assets像在 Rails 应用程序中那样使用。不要group __anything__用于那件事。

不会加载组中的任何内容,因为 Bundler.require(test/dummy/config/application.rb 的第 5 行)不接受任何参数。将其与 Rails 应用程序中的相应代码行进行比较,该应用程序采用 Rails.env 组(即:production 或 :development 或 :test),有时还有 :assets。

Bundler.require当然,另一种选择是为您要包含的 Gemfile 中的每个组传递一个 arg 。如果这样做,请确保包含 :default。

在 11/29 当天晚些时候添加:

澄清一下,错误的真正原因是 @import 指令在 CSS 中的含义与在 Sass 中的含义不同。我上面的回答确实解决了当您希望将文件解析为 Sass 时为什么将文件解析为 CSS 的问题。要将其解析为 Sass,需要包含 sass-rails gem。除了上面的答案之外,这可能还有其他原因,所以即使您正在使用 Rails 应用程序并且问题不在于 Bundler 是否在 :assets 组中包含 gem,sass-rails 可能还有其他原因不包括在您期望的情况下。检查您的 Gemfile 以确保 sass-rails 在那里,如果它在一个组中,请尝试将其移出以查看是否会改变事情。

于 2012-11-29T17:17:53.187 回答