Rails路由助手莫名其妙地将“postinstall”添加到请求中

时间:2013-10-27 08:11:34

标签: ruby-on-rails

* Listening on tcp://0.0.0.0:3000

Started GET "postinstall/" for 127.0.0.1 at 2013-10-27 07:26:15 +0000
ActiveRecord::SchemaMigration Load (1.8ms)  SELECT "schema_migrations".* FROM "schema_migrations"

基本上就是这样,我的所有按钮都链接到帮手,如:

new_user_registration GET      /users/sign_up(.:format)               registrations#new
edit_user_registration GET      /users/edit(.:format)                  registrations#edit

只有所有链接都是这样的:

http://localhost:3000/postinstall/users/sign_in

我已经完成了我的日志,并且有一次请求刚刚开始被这种“postinstall”业务中毒。

我已经为'postinstall'而努力了,因为这个词肯定不会来自任何地方。我决定睡觉,因为我认为这肯定是一个愚蠢的错误,但现在我需要帮助,不像我之前的99.9%的问题 - 看起来似乎没有得到任何回答。

在Google上搜索“postinstall”查询会产生可怕的结果。

认为我的问题在于路径助手,“postinstall”前置于请求/网址的所有地方 - 路径的引用如下:

<a href="/users/sign_in" class="btn btn-success">Test</a>

<%= link_to "Sign In", new_user_session_path, :class => "btn btn-success" %>

第一个链接在哪里工作路由OK,但是提交登录表单的按钮正在尝试POST到/ postinstall / users / sign_in等...第二个按钮将是/ postinstall / users等的链接。

我完全不知道这是怎么开始的,我一直在我的git日志上,甚至回到3或4天(这个问题从昨晚开始),错误仍然存​​在。

它是否看起来特定于我的Mac,部署到开发站点(Ubuntu)没有问题。我已经重新启动了我的mac等任何帮助都非常感谢...

2 个答案:

答案 0 :(得分:12)

我遇到了同样的问题。

我使用puma作为网络服务器,puma使用一个名为'SCRIPT_NAME'的ENV,在安装软件后设置了'postinstall'值,在url上执行puma注入'postinstall'。

如果您仍然遇到此问题,请使用shell unset SCRIPT_NAME上的命令从您的ENV中取消设置SCRIPT_NAME var。

答案 1 :(得分:2)

如果您使用的是TotalTerminal,则最新更新会在更新后设置SCRIPT_NAME环境变量。重新启动计算机可以解决问题。

我在Binary Age的支持网站上开始了一个新主题,试图解决这个问题:http://discuss.binaryage.com/t/totalterminal-update-overrides-script-name-breaks-webservers/897