【发布时间】:2012-09-11 10:49:56
【问题描述】:
我在 Rails (3.2.7) 中的资产预编译存在问题。
我包含一个这样的网站图标:
<link rel="icon" type="image/png" href="<%= image_path("favicon.png") %>" />
在开发模式下我设置了config.assets.compile = true。一切正常,呈现的 HTML 如下所示:
<link rel="icon" type="image/png" href="/assets/favicon.png" />
但是在生产中,我设置了config.assets.compile = false,我得到了错误
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Home#index
...
favicon.png isn't precompiled
我已经运行了rake assets:precompile,我可以清楚地看到,该资产在public/assets/favicon.png 下可用。
我知道,我可以在生产环境中设置 config.assets.compile = true,但我不想这样做(因为性能原因)。
有谁知道,为什么我的 rails 应用程序无法解析生产中资产的正确路径?谢谢!
更新: 了解可能也很有用:它不仅适用于图像,也适用于其他资产。
例如,当 config.assets.compile 设置为 false 时,<%= stylesheet_link_tag "screen", :media => "all" %> 也会产生错误 screen.css isn't precompiled。
【问题讨论】:
-
我正在使用公用文件夹来存储图像,因为它在任何环境中都不适合我。
标签: ruby-on-rails-3 asset-pipeline