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

时间:2012-09-14 21:39:33

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

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

1)

我的Gemfile:

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文件中。

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

syntax error, file to import not found or unreadable: compass_twitter_bootstrap

load path: my_project_directory/public/stylesheets/sass

1 个答案:

答案 0 :(得分:1)

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

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

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

另一个选择当然是将Geg文件中每个组的arg传递给Bundler.require。如果这样做,请确保包括:default。

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

为了澄清,错误的真正原因是@import指令在CSS中意味着与在Sass中不同的东西。我上面的回答确实解决了为什么要将文件解析为Sass时将文件解析为CSS的问题。要将其解析为Sass,需要包含sass-rails gem。除了上面的答案,可能还有其他原因,所以即使你正在使用Rails应用程序,问题不在于Bundler是否在:assets组中包含gem,可能还有其他一些原因导致sass-rails在您预期的时候不包括在内。检查您的Gemfile以确保sass-rails存在,如果它在一个组中,请尝试将其移出以查看是否会改变这些内容。