【问题标题】:Set Play Framework Environment设置 Play 框架环境
【发布时间】:2015-11-23 16:03:40
【问题描述】:

我的项目部署有问题。到目前为止,我使用的是单个 playframework 应用程序,运行监听端口 80。 现在,我使用 Nginx 作为代理在同一服务器 2 中发布了应用程序。 Nginx 监听 80 端口,应用运行在 9001 和 9002 端口。

一切正常,但应用程序在开发模式下而不是在生产模式下运行,页面 404 不起作用,并且在 html 页面中我看到如下代码错误:“Action not found For request 'GET /asd ’”。 我使用以下命令运行应用程序:

myapp -Dhttp.port=9001 -Dconfig.file=conf/application.conf -Dlogger.file=/mydir/conf/application-logger.xml -Dpidfile.path=/mydir/daasy.pid -server

我将 playframework 2.4.3 与 scala 2.11.7 一起使用

更新: 我创建了一个引导类:

class onStartClass @Inject() (val app: Application)
{
  println(app.mode)
}

app.mode 在 prod 中运行时返回“Prod”,使用端口 80 以及在端口 9001 中运行时。

但是,当在 9001 端口运行的应用程序无法在 404 页面运行时,网站会返回一个 playframework 错误页面。

【问题讨论】:

  • 你如何打包/部署你的应用程序?
  • @Jean 和 dist,然后我把 zip 放到服务器上,解压并启动。
  • 您可以使用 curl 检查您的两个应用程序是否在没有代理的情况下工作。只需指定端口 9001 或 9002,例如curl http://youraddress.com:9001/asd.
  • @Kris,是的,我可以,然后我做了一个测试。应用程序可以工作,但在开发模式下工作,我可以使用端口 9001 和 9002 访问。
  • @faster2b 抱歉,我无法理解。你说,你的 2 个应用在开发模式下运行良好,但在生产模式下却不行?

标签: scala playframework


【解决方案1】:

据我了解,您观察到的是 Play 2.4 的正确行为

在开发模式下,404 由 devNotFound.scala.html 模板处理,并产生如下所示的错误:

在 prod 模式下,404 由 notFound.scala.html 模板处理,并产生如下所示的错误:

注意第一个错误如何列出所有现有路由,而第二个没有。

如果您想要再次呈现 404 NotFound 错误,您需要创建自己的错误处理程序,如 ScalaErrorHandling 中所述

【讨论】:

  • 是的,我使用自定义代码,问题出在我的 ScalaErrorHandling 中。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 2013-03-23
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多