Rails Ubuntu 上的应用 运行 Apache 和 Passenger 抛出 404 参数

Rails App on Ubuntu running Apache and Passenger throws 404 with params

我正在尝试设置一个服务器来托管我的 rails 应用程序。我有一个正在测试,当我在 URL 中传递参数时调用控制器操作时,它给我一个 404 错误。我在 Heroku 上部署了这个应用程序,它运行得很好。任何不带参数调用的操作都可以在新服务器上完美运行。只有传递参数的操作才会给我 404。

另外,我 运行 它在本地与服务器上的 Webrick 一起工作,并且工作正常。仅当乘客 运行 时出现此问题。

任何可能导致此问题的想法或我应该从哪里开始找到问题?

这是正在发送的请求 请求 GET /groups/2/set_and_redirect/%2Fgroups%2F2%2Fgroups_lists HTTP/1.1

这是 404 响应的正文 在此服务器上找不到请求的 URL /groups/2/set_and_redirect//groups/2/groups_lists。

编辑

这是导致问题的部分。特别是 link_to group.name。编辑和删除都可以正常工作,设置和重定向在 Heroku 和 Webrick 上也可以正常工作。

<% @groups.each do |group| %>
    <h4><div>
      <%= link_to group.name, groups_set_and_redirect_path(:id => group.id, :path => group_list_path(id: group.id) ), remote: true %>&nbsp;&nbsp;
      <%= link_to ('<i class="glyphicon glyphicon-edit"></i>').html_safe, edit_group_path(group),'data-toggle' => 'modal', 'data-target' => "#group-modal#{group.id}", remote: true %>&nbsp;&nbsp;

      <%= link_to ('<i class="glyphicon glyphicon-trash text-danger"></i>').html_safe, group, method: :delete, data: { confirm: 'Are you sure?' }, remote: true %>
    </div></h4>
<%end%>
<div> <%= link_to ('<i class="glyphicon glyphicon-plus text-success"></i>').html_safe, "#group-modal", 'data-toggle' => 'modal', class: 'btn btn-lg' %> </div>

I changed my route from

get 'groups/:id/set_and_redirect/:path' => 'groups#set_and_redirect', :as => :groups_set_and_redirect

to

get 'groups/:id/set_and_redirect' => 'groups#set_and_redirect', :as => :groups_set_and_redirect

and now it works

调整您的 routes.rb 以便不出现双斜杠(可能通过为 path 使用命名参数)。