gpt4 book ai didi

ruby-on-rails - 逐步升级到 Rails Assets 管道

转载 作者:行者123 更新时间:2023-12-03 15:16:17 25 4
gpt4 key购买 nike

我有一个相当复杂的 Rails 网络应用程序,它已经有将近 4 年的历史了:)。许多客户每天都在使用它,因此在对它进行彻底更改时,我必须不那么随意。

我已经设法将它迁移到 rails 3.2.2 并且仍然可以使用,但是有很多代码仍然使用 Scriptaculous、Prototype 的 Ajax 调用(例如用于分页)等等。

我想慢慢地将所有这些迁移到使用 jQuery UJS 和 Coffeescript,但我必须零碎地进行这些更改,最好一次跨多个“版本”进行一个 Controller 。

但我看到打开 Assets 是一个 bool 开关。

您如何在不破坏大量代码的情况下将现有代码迁移到 Assets 管道?我应该采取什么预防措施?

最佳答案

如果还不算太晚,这里是我们发现启用 Assets 管道的技巧,公用文件夹中仍然有许多 css 和 js:

为了保留静态文件的“旧”标签助手,我们在它们被 Assets 管道覆盖之前给它们取了别名。我们在 application.rb 中的 require 'rails/all' 上方添加此代码段:

require 'rails'

ActiveSupport.on_load(:action_view) do
alias_method :without_asset_pipeline_js, :javascript_include_tag
alias_method :without_asset_pipeline_css, :stylesheet_link_tag
alias_method :without_asset_pipeline_img, :path_to_image
end

因此,在我们看来,我们仍然可以访问它们。但是我们必须更改所有标签...因此,我们添加了一个初始化程序来恢复“旧”标签,并在"new"标签前加上“asset_”(或其他)前缀。现在,我们既可以在 public/中拥有静态 Assets 文件,也可以在 Assets 管道中管理 Assets 。

目前,我们没有遇到这种方法的问题(除了它不适用于图像!),但我们才刚刚开始...

关于ruby-on-rails - 逐步升级到 Rails Assets 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174491/

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