编辑该问题。我有这个简单的普拉克app.psgi
:将Plack应用程序与反向代理一起使用 - Plack :: Middleware :: Debug
my $app = sub {
my $env = shift;
return [
200,
['Content-Type' => 'text/html'],
[ "<html><head><title>x</title></head><body><pre>Path info: $env->{PATH_INFO}</pre></body></html>"],
];
};
use Plack::Builder;
builder {
enable 'Debug';
$app;
};
用一个简单的plackup
运行它。
当从本地机器访问:http://localhost:5000/some/path
时,它打印: Path info: /some/path
并得到了一个很好的工作Plack调试面板。
现在,我有apache:80
配置如下:
ProxyPass /myapp/ http://127.0.0.1:5000/
ProxyPassReverse /myapp/ http://127.0.0.1:5000/
那么,随之而来的所有请求:http://SITE/myapp/
被代理上述普拉克应用。因此,通过
http://SITE/myapp/some/path
试图访问它时,浏览器再次,正确打印:
Path info: /some/path
但“普拉克::中间件/调试”不工作,因为他将在未来浏览器的网址:
jquery.js -> /debug_toolbar/jquery.js
toolbar.min.js -> /debug_toolbar/toolbar.min.js
当然,theyre不存在。 (他们应该/myapp/debug_toolbar/....
)
所以,问题是:
- 什么,我需要做的事情 - 如何改变上述app.psgi得到一个工作程序?
- 我需要
somewhat
改变所有传出的网址前缀/myapp/
一个简短的浏览,我发现的东西在这里:'Plack-Middleware-Debug-0.16/lib/Plack/Middleware/Debug.pm' ... var jquery_url ='<%= $stash-> {BASE_URL}%>/debug_toolbar/jquery.js'...你尝试在这里修改路径? –
编辑的问题更容易理解 - 至少我希望... – jm666