我使用gem jquery-ui-themes获得了3个Rails 3.2应用程序。 jquery-ui-themes使用scss作为图像路径助手。
它在我的两个应用程序中运行良好,但是第三个似乎没有在开发或生产模式下编译scss文件。
IOW,它将此信息发送到浏览器
background: #fcfdfd url(image-path("jquery-ui/redmond/ui-bg_inset-hard_100_fcfdfd_1x100.png")) 50% bottom repeat-x;
而两个正在运行的应用程序正确发送
background: #fcfdfd url("/assets/jquery-ui/redmond/ui-bg_inset-hard_100_fcfdfd_1x100.png") 50% bottom repeat-x;
我花了很多时间尝试使应用程序尽可能与两个正在运行的应用程序相似,但它仍然失败。
我的理论是,SASS正在窒息redmond.css.scss之前的事情。如果是这样,应该在某处记录错误。从哪里可以找到SASS的错误输出?
我在redmond.css.scss中引入了一个故意的错误,我得到了一个正确的错误转储。所以我知道我正在清理缓存并实际运行sass。现在弄清楚为什么它忽略了图像路径指令。
答案 0 :(得分:0)
如果您正在寻找标题中问题的答案,答案是“与获得任何其他错误的方式相同:它们在您的日志中”。要获得完整的回溯,只需将浏览器指向资产即可:即http://localhost:3000/assets/jquery-ui/redmond.css
。
确保清除所有缓存:rm -rf .sass-cache/ && rm -rf public/assets && rake tmp:cache:clear
,以及在浏览器中使用ctrl-shift-r。
答案 1 :(得分:0)
如果您正在寻找我的真实问题的答案(图像路径无效),请确保您的application.rb中有正确的Bundler.require行。旧的Rails 3.0不起作用。
取代:
# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)
使用:
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end