【问题标题】:syntax error, file to import not found or unreadable: compass_twitter_bootstrap语法错误,找不到要导入的文件或无法读取:compass_twitter_bootstrap
【发布时间】:2012-09-14 21:39:32
【问题描述】:

我想使用 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

【问题讨论】:

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


    【解决方案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。

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-28
      • 2013-02-13
      • 2017-04-11
      • 1970-01-01
      • 2019-10-26
      • 2012-03-29
      • 2017-06-01
      • 2015-08-03
      • 1970-01-01
      相关资源
      最近更新 更多