私はアプリケーションをPlay 2.3.xから2.4.xに移行しています。静的ルーティングからの移行に伴い、私は明らかに一部の資産にリダイレクトする機能を失います。このアプリケーションは、URLに追加できるテナント機能(localhost:9000/Tenant /)を実装しています。これにより、適切なテナントがバックグラウンドで設定されたログインページにリダイレクトされます。デフォルトのテナント(開発目的)は、urlに付随しない(localhost:9000 /)を使用してアクセスできます。Playフレームワークアセットルーティングはバージョン2.4.xでは機能しません
問題がテナントを設定した後、私は次のように使用してindex.htmlを/アプリにリダイレクトすることになりました:リダイレクト作品
return redirect(query != null ? "app/index.html?" + query : "app/index.html");
残念ながら、私はGET」アクションが要求のために が見つかりません」を取得/app/index.html ''手動でリダイレクトしてもアセットにアクセスできません。
アプリケーションのroutesファイルでは、次のルートエントリがこのリダイレクトを正しく処理するはずですが、間違っていますか?
# Map static resources from the /public/app folder to the /app URL path
GET /app/*file controllers.Assets.at(path="/public/app", file)
ログには、残念ながら以外は特に何も言っていない:人々は、コンソール上でエラーを受信したことを[Play Framework Routes not working]私は他の例で見た
**** [TRACE] Http request received by netty: DefaultHttpRequest(chunked: false)
**** GET /app/index.html HTTP/1.1
**** Host: localhost:9000
**** Connection: keep-alive
**** Upgrade-Insecure-Requests: 1
**** User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
**** Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
**** Accept-Encoding: gzip, deflate, sdch
**** Accept-Language: en-US,en;q=0.8,de;q=0.6
**** Cookie: PLAY_SESSION="f2069c9ef539f8d3fe9d07327a3c65bd4a45cb79-MANDT=0B7ABE451F3441A5AB93799DBC8621EF" [play.core.server.netty.PlayDefaultUpstreamHandler]
**** [TRACE] Serving this request with: <function1> [play.core.server.netty.PlayDefaultUpstreamHandler]
**** [TRACE] Invoking action with request: GET /app/index.html [play.api.mvc.Action]
をルートが試されていると言います。
これは2.3.xでは機能しましたが、2.4.xではこれ以上機能しませんでした。私は何か不足していますか?
リダイレクト時に問題が発生していませんか? (つまり、ブラウザの/app/index.htmlに直接アクセスすると動作します) – Salem
'GET/app/*ファイルコントローラ.Assets.at(パス="/public "ファイル)' これを試すことができますか? 'リダイレクト'が1行if文を処理できるかどうかチェックしましたか? –
@Salem:問題は、リダイレクトするときだけでなく、index.htmlを呼び出すたびに発生しているようです。 – Ben