我正在将我们的应用程序从Play 2.3.x迁移到2.4.x.随着远离静态路由的迁移,我显然失去了重定向到某些资产的能力。该应用程序实现了一个租户功能,可以将其附加到URL(localhost:9000 / Tenant /),然后将您重定向到登录页面,并在后台设置适当的租户。默认租户(用于开发目的)可以通过不使用url的附录来访问(localhost:9000 /)。
问题是,在设置租户后,我使用以下内容重定向到app / index.html:
return redirect(query != null ? "app/index.html?" + query : "app/index.html");
重定向有效但不幸的是我得到了#34;未找到动作 请求' GET /app/index.html'"。如果我手动重定向,我也无法访问资产。
在应用程序的路由文件中,以下路由条目应该正确处理此重定向,我错了吗?
# Map static resources from the /public/app folder to the /app URL path
GET /app/*file controllers.Assets.at(path="/public/app", file)
遗憾的是,除了以下内容之外,日志并没有特别说明:
**** [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]
我在其他情况下[Play Framework Routes not working]看到人们在控制台上收到错误,说明哪些路线已经尝试过。
这适用于2.3.x,但不再适用于2.4.x.我错过了什么吗?
答案 0 :(得分:0)
我可以解决这个问题:
我意识到在迁移时,我没有正确使用迁移指南来使用SbtWeb。
整个配置缺少enablePlugins(...,SbtWeb),我缺少sbt-gzip等。请确保正确遵循指南并将配置与新创建的新项目进行比较。后者在寻找可以在迁移时轻松监督的标准配置时帮助很大。