【发布时间】:2012-01-12 01:03:42
【问题描述】:
我正在使用 Rails 3.1,在我的资产/样式表中我有一堆 .css 和 .scss 文件。
Rails 似乎正在尝试预编译 .css 文件,但出现以下消息:
Invalid CSS after "...{padding-bottom": expected "{", was ";0;}#order_deta..."
如果我只有 .css 文件,并且如果我从 Gemfile 中注释掉 sass-rails gem,那么一切正常。
group :assets do
#gem 'sass-rails', '~> 3.1.4'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
所以现在的问题是,我是否必须将所有 .css 转换为 .scss 才能很好地进行资产预编译,还是有解决方法?
更新:
这是我的代码:
config.assets.paths << "#{Rails.root}/app/themes/vanilla/assets/stylesheets"
config.assets.paths << "#{Rails.root}/app/themes/vanilla/assets/javascripts"
config.assets.paths << "#{Rails.root}/app/themes/vanilla/assets/images"
config.assets.precompile += ['vanilla.css', 'vanilla.js']
vanilla.css 看起来像这样:
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*
*= require 'reset'
*= require 'vroom'
*= require_self
*/
这里reset是reset.css,vroom是vroom.css.scss
这是我得到的错误:
Invalid CSS after "...{padding-bottom": expected "{", was ";0;}#order_deta..."
(in .........../stylesheets/vanilla.css)
发生此错误是因为 Rails 正在尝试预编译 reset.css。
如果我删除 sass-rails gem 和所有 .scss 文件,则 rake assets:precompile 可以工作。
【问题讨论】:
-
你打算以后使用
sass-rails吗?如果没有,似乎评论它是最好的方法。 -
但正如我所说,我有一些 .css 文件和一些 .scss 文件。我需要 .scss 的 sass-rails。似乎告诉 sass-rails 不编译 .css 应该很容易。我一定是错过了什么。
-
抛出异常的文件的扩展名是什么?您应该能够同时使用 css 和 scss 而不会出现任何问题。
-
@Nick 我已经更新了我的问题。请查看“更新”部分。
标签: ruby-on-rails ruby asset-pipeline