2013-03-14 34 views
2

我开发了一个Catalyst应用程序,它通过催化剂开发服务器运行,比如localhost:3000。接下来,我使用mod_proxy将Apache配置为代理请求http://myhost/myapp/localhost:3000如何配置Catalyst应用程序的基础URL?

我现在想要Catalyst知道它已公开重定位到基址myapp/,并在通过uri_for形成URL时考虑到它。

我该怎么办?

+0

您有使用这种方式的代理的原因吗?为什么不使用Apache来运行Catalyst应用程序? – 2013-03-14 11:34:04

+0

这是一个共享主机和安装mod_fcgi似乎更像是一个麻烦而不是代理。无论如何,设置应用程序根目录应该是单个配置选项的问题,对吧? – 2013-03-14 11:37:30

+0

也许它不是正确的,或者可以被看作是一个hackery,但试图改变你的基地址在Root :: auto中,就像这个'$ c-> req-> base($ c-> req-> base。'myapp/“)'。这假定你使用它就像你所描述的那样简单,并且一个静态字符串就足够了。 – ArtM 2013-03-14 18:14:10

回答

1

KT,以最简单的事是安装Catalyst::TraitFor::Request::ProxyBase,因为它是专门设计成与通过HTTP代理传递的值来替换请求基地。

该模块是完全透明的,并且需要对现有的应用程序的任何修改。