質問を編集しました。私はこの単純な Plack を持っていますapp.psgi
:
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/
は、上記の Plack アプリにプロキシされます。したがって、経由でアクセスしようとすると
http://SITE/myapp/some/path
ブラウザは再び、正しく出力します:
Path info: /some/path
しかし、"Plack::Middleware/Debug" は機能しません。なぜなら、彼は次の URL をブラウザーに送信するからです。
jquery.js -> /debug_toolbar/jquery.js
toolbar.min.js -> /debug_toolbar/toolbar.min.js
もちろん、それらは存在しません。(彼らはする必要があります/myapp/debug_toolbar/....
)
質問は次のとおりです。
- 私がする必要があること - 上記の app.psgi を変更してアプリを動作させるにはどうすればよいですか?
somewhat
すべての発信 URL をプレフィックス付きで変更する必要がある/myapp/