未找到播放2.4.2 Scala Controller.Assets.at操作
我将Play2.4.2用于Scala 这是我的路由文件未找到播放2.4.2 Scala Controller.Assets.at操作,scala,playframework,playframework-2.0,playframework-2.4,Scala,Playframework,Playframework 2.0,Playframework 2.4,我将Play2.4.2用于Scala 这是我的路由文件 GET /favicon.ico controllers.Assets.at(path="/public", file="images/favicon.png") GET /robots.txt controllers.Assets.at(path="/public", file="files/robots.txt") GET / controller
GET /favicon.ico controllers.Assets.at(path="/public", file="images/favicon.png")
GET /robots.txt controllers.Assets.at(path="/public", file="files/robots.txt")
GET / controllers.Default.redirect(to = "http://www.marketingpage.local")
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /:id controllers.XController.method0(id: String)
GET /path/:id controllers.XController.method1(id: String)
我正在使用注入路由生成器。这是我的身材
routesGenerator:=注入式路由生成器
/,/:id,/path/:id路由在开发和生产中运行良好,但是这些页面上的任何资产都不会在生产中返回
进一步的测试显示,生产中没有使用controller.Assets.at的路由。在开发过程中,他们在我的本地机器上工作
在生产环境中,如果我试图直接访问资产,我会得到默认的“未找到请求'get/assets/stylesheets/attachments.css'的操作”
因此,对资产的请求正在到达Play服务器
我已经尽我所能解决这个问题
我怀疑这与依赖注入有关
有什么想法吗?诊断此问题的一些提示:
target
目录中,sbt是否将您的所有资产都打包在一个专用的jar中:build.sbt
,尤其是pipelineStages
(尝试一个新项目来比较-activator new
)/project
文件(请尝试新项目进行比较)application.conf
中的配置,查看assets.XXX
值(删除这些配置以重试)/public
请求这是SBT插件之间的冲突。我为旧版本的Play编写了一个自定义插件,该插件不支持sbt native packager,基本上与2.4构建系统现在使用sbt native packager所做的相同。冲突阻碍了dist构建和打包web资产jar。因此,我正在删除我的插件,并将设置迁移到Play build tools中内置的等效支持。如何构建产品?如果使用
stage/dist
build,请尝试在lib
文件夹中查找your_project\u name-your_version-assets.jar
。如果此jar包含您的资产,则打开调试,以testProd
的身份运行play,转到play.api.controllers.AssetBuilder
类,然后调试assetAt
方法。您提供的信息很少,无法给出准确的答案。