Ruby on rails 3.1 Rails.3.1.1:config.assets.digest=true会导致编译后的css用作精灵';s文件名
我有一个新的ish rails 3.1.1应用程序,使用sass/compass和compass为我处理精灵世代。在开发中,一切都很好。但是,在部署时,我在日志文件中看到以下条目: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
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
扩展吗?