我的申请涉及路由问题。在生产中,根网址为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'
建议
答案 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')
祝你好运!