将 Rails 应用程序移至生产环境并遇到路由问题。我读过这个答案:
ActionController::Base.relative_url_root 的替代品是什么?
但我仍然无法理解完整的解决方案,以及如何在不关心应用程序放置位置的情况下继续开发。
我在以下位置运行应用程序:http://dev.mycompany.com:8081/myapp/
所以我把它放在production.rb中:
config.action_controller.relative_url_root = "/myapp"
我把它放在路线中:
scope "/myapp" do
root :to => 'application#index'
match 'login/index' => 'logins#index', :as => 'logins_index'
end
在我的表单标签中,我有:
<form class="loginForm" name="loginForm" id="loginForm" action="<%= url_for('/login') %>" method="post">
我以为一切都会神奇地起作用,但事实上我需要把
action="<%= url_for('/myapp/login') %>"
让它工作。这是预期的吗?我不想担心我的应用程序在哪里进行生产,但是这个解决方案要求它在我的代码中。谢谢