加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails资产管道 – image_path帮助程序仅在开

发布时间:2020-12-17 02:02:44 所属栏目:百科 来源:网络整理
导读:我在Rails(3.2.7)中遇到资产预编译问题. 我包括这样一个图标: link rel="icon" type="image/png" href="%= image_path("favicon.png") %" / 在开发模式下,我设置config.assets.compile = true.一切正常,渲染的HTML看起来像这样: link rel="icon" type="ima
我在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资产:预编译,我可以清楚地看到,资产在public / assets / favicon.png下可用.

我知道,我可以在生产中设置config.assets.compile = true,但我不想这样做(因为性能原因).

有没有人知道,为什么我的rails应用程序无法解决生产中资产的正确路径?谢谢!

更新:
也许有用的知道:它不仅发生在图像上,也发生在其他资产上.

例如<%= stylesheet_link_tag“screen”,:media => “所有”%>还会产生错误screen.css在config.assets.compile设置为false时未预编译.

解决方法

好吧,经过几次尝试,我想通了,如何解决这个问题.然而它有点奇怪,并不完全满足我.它只对我有用,当我将digest设置为true并提供清单的路径时:

config.assets.compile = false
config.assets.digest = true
config.assets.manifest = Rails.root.join("public/assets")

知道这个“逻辑”背后的内容会很有趣.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读