我想使用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
答案 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存在,如果它在一个组中,请尝试将其移出以查看是否会改变这些内容。