【问题标题】:Rails 3 legacy "assets" routesRails 3 遗留的“资产”路线
【发布时间】:2012-02-08 19:32:01
【问题描述】:

我正在从 Rails 2.3.14 应用升级到 Rails 3.2.1 到目前为止,唯一的问题是无法指定到我们的遗留资产资源的路线。

config/application.rb 中:

config.assets.enabled = false

以下工作(路径不正确):

resources :company_assets, :controller => 'assets', :as => :assets

当然,路径是'/company_assets/*'

一旦我尝试将路径设置为 '/assets/*',路由将无法生成。 “生成失败”,我的意思是运行:

rake routes | grep assets

什么也没显示。

以下是未能正确生成路由的示例:

resources :company_assets, :controller => 'assets', :as => :assets, :path => 'assets'

# or

resources :assets

当我在 Rails 控制台中四处寻找时,似乎有与资产相关的路线,但它们似乎等同于指定:

resource :assets

代替:

resources :assets

(注意单数与复数)

是否可以在不破坏现有路径的情况下保持向后兼容性?

【问题讨论】:

    标签: routes asset-pipeline assets rails-3-upgrade


    【解决方案1】:

    是的,有可能。

    发生这种情况的原因是因为 Sprockets(处理资产管道)接管了 /assets 路由。

    您可以通过将其添加到您的application.rb 来更改 Sprockets 使用的路线:

    config.assets.prefix     = "/x"
    

    其中 x 是新路线。

    我在我的一个生产应用程序中执行此操作,因为回形针将其文件存储在 /assets 中。

    升级提示:检查升级后应用中的管道设置与last section of the asset pipeline guide 中的设置。

    【讨论】:

      猜你喜欢
      • 2012-07-19
      • 2013-01-10
      • 1970-01-01
      • 2012-04-01
      • 2012-03-07
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多