在开发/生产环境中应用根URL的路由问题

时间:2012-02-18 01:43:42

标签: ruby-on-rails ruby-on-rails-3 routing

我的申请涉及路由问题。在生产中,根网址为example.com/xyz/

许多images_paths都设置为../xyz/assets/header.jpg

在开发中,我收到路由错误,因为我的主机是localhost:3000。我想要实现的是localhost:3000/xyz,所以路由路径再次适合。生产路线应保持不变。

开发环境中的当前错误消息是:

ActionController::RoutingError (No route matches [GET] "/xyz/assets/header.jpg"):

我不能在我的application_controller中使用这样的东西吗?

Rails.application.routes.default_url_options[:host]= 'localhost:3000/xyz'

建议

1 个答案:

答案 0 :(得分:1)

您可以构建类似于

的文件路径
@header_image_file = File.join(RAILS_ROOT, 'xyz', 'assets', 'header.jpg')

实际上,RAILS_ROOT自Rails 3以来已被弃用,所以你现在应该使用,

@header_image_file = File.join(Rails.root.to_s, 'xyz', 'assets', 'header.jpg')
祝你好运!