編輯該問題。我有這個簡單的普拉克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