Ruby on rails 3.1 Rails.3.1.1:config.assets.digest=true会导致编译后的css用作精灵';s文件名

Ruby on rails 3.1 Rails.3.1.1:config.assets.digest=true会导致编译后的css用作精灵';s文件名,ruby-on-rails-3.1,css-sprites,asset-pipeline,compass-sass,Ruby On Rails 3.1,Css Sprites,Asset Pipeline,Compass Sass,我有一个新的ish rails 3.1.1应用程序,使用sass/compass和compass为我处理精灵世代。在开发中,一切都很好。但是,在部署时,我在日志文件中看到以下条目: Compiled team/application.css (1ms) (pid 24202) Compiled team/forms.css (0ms) (pid 24202) Compiled team/member.css (0ms) (pid 24202) Compiled application

我有一个新的ish rails 3.1.1应用程序,使用sass/compass和compass为我处理精灵世代。在开发中,一切都很好。但是,在部署时,我在日志文件中看到以下条目:

Compiled team/application.css  (1ms)  (pid 24202)
Compiled team/forms.css  (0ms)  (pid 24202)
Compiled team/member.css  (0ms)  (pid 24202)
Compiled application.css  (0ms)  (pid 24202)
Completed 500 Internal Server Error in 2014ms

ActionView::Template::Error (File name too long - /home/cri/webapps-releases/cri/releases/20111121225403/app/assets/images/html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote...(the rest of my compiled css goes here)
我的生产配置(用于资产配置)非常普通,大部分是由rails生成的:

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Specify the default JavaScript compressor
  config.assets.js_compressor  = :uglifier

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = true

  # Generate digests for assets URLs
  config.assets.digest = true

  config.assets.debug = true
有人能告诉我为什么我编译的css被用作精灵的文件名吗

更新:修改标题以反映我现在认为我对这个问题的了解


我正在使用sass-3.1.10和sass-rails-3.1.5以及compass-0.11.3运行rails-3.1.1。

compass-0.11.3没有适当的资产管道支持,您将要使用>=0.12。alpha.3版本您可以通过执行
gem安装compass--pre
来实现这一点。如果您在0.12下仍然存在此问题,那么这是一个bug,我会告诉您如果您能在compass github上提交一张机票,我们将不胜感激。

试试看

config.assets.debug = false

这些变通方法是正确的,但在3.1.4中已修复。升级可能是您最好的全方位选择。

如果我将config.assets.digest设置为false,那么问题就不会出现了。所以,现在的问题是,我应该将这个bug提交给谁?您是否已经预编译了您的资产?你知道
.css.sass
扩展吗?