gpt4 book ai didi

ruby-on-rails - 仅对图像禁用 Rails 3.1 Assets 管道?

转载 作者:行者123 更新时间:2023-12-04 05:55:46 26 4
gpt4 key购买 nike

我正在将 Rails 3 应用程序升级到 3.2 并设置 Assets 管道。这对 css/js 非常有用,但我并没有真正看到将它用于图像的意义,不幸的是,我有大量引用/images/*.png 等的 css。

有没有办法只为图像禁用 Assets 管道,所以 image_tag("x.png")将返回返回 <img src="/images/x.png">而不是 <img src="/assets/x.png"> ?谢谢!

最佳答案

你可以猴子补丁 ActionView::Base,在 rails 控制台试试这个:

helper.image_path "foo" #=> "/assets/foo"

module OldImagePath
def image_path(source)
asset_paths.compute_public_path(source, 'images')
end
alias_method :path_to_image, :image_path
end
ActionView::Base.send :include, OldImagePath

helper.image_path "foo" #=> "/images/foo"

例如,您可以将其放在初始化程序中。默认情况下 ActionView::Base 包括 ActionView::Helpers::AssetTagHelper 和 Sprockets::Helpers::RailsHelper 两者都定义了 image_path 但后者优先。我包含了我自己的模块,它优先于所有模块(里面的代码取自 ActionView::Helpers::AssetTagHelper)。

虽然,将 Assets 管道用于图像也是有意义的。他们在他们的文件名中获得哈希和,以便他们可以在客户端永久缓存,而无需询问服务器文件是否已更改。

关于ruby-on-rails - 仅对图像禁用 Rails 3.1 Assets 管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com