8

我创建了一个全新的 Rails 3.1 应用程序。我在 app/assets/stylesheets/bootstrap.min.css 中添加了 twitter 引导 CSS 文件。这是相关代码

app/assets/stylesheets/application.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_self
 *= require_tree . 
*/

Gemfile(包括用于编译/压缩的 execjs 和 therubyracer)

group :development, :qa do
  gem 'execjs'
  gem 'therubyracer'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.0'
  gem 'coffee-rails', '~> 3.1.0'
  gem 'uglifier', '>= 1.0.3'
end

然后我运行 rake 任务来预编译资产

rake assets:precompile

这失败并出现以下错误

Invalid CSS after ".inputs-list li+": expected number or function, was "li"

CSS 在引导文件中(“.inputs-list li+li”是选择器)。

但是,如果我运行

rake assets:precompile RAILS_ENV=development

现在它工作正常。事实证明,如果我将 config/environments/production.rb 更改为不压缩文件:

config.assets.compress = false

那么原始命令也可以工作(不指定开发环境)。

那么,我该如何追踪错误呢?我现在可以忍受只关闭压缩,但显然有问题。是导轨吗?链轮?红宝石赛车手?丑化剂?

4

2 回答 2

6

我建议使用将引导程序转换为 sass 并将其合并到资产管道中的库之一。这样您就可以合并 JS,您可以更改 bootstrap 在 preboot.scss 文件中使用的变量,并且您可以选择要合并的功能。您还可以使用捆绑程序进行升级。

我使用 bootstrap-sass,效果很好:https ://github.com/thomas-mcdonald/bootstrap-sass

于 2011-10-17T16:37:29.950 回答
4

我使用非缩小版的 Bootstrap 修复了这个问题。运行时它仍然会被编译,rake assets:precompile所以这不是问题:)

于 2011-10-17T16:34:24.560 回答