playframework - Play 框架的维护模式

标签 playframework playframework-2.0

有什么方法可以显示静态 HTML 页面,以说明网站在 Play Framework 编译新代码时处于维护状态?

我可以看到我们如何手动创建维护页面,例如在进行长时间的数据库或文件更改时(在此期间应用程序可能处于不一致状态),但是是否有任何内置方法可以 Play Framework ?

我知道一些其他主要的服务器软件,如 Nginx,有办法在这里显示一个静态资源。由于 Play Framework 也是服务器软件,它是否具有等效项?

最佳答案

当然。你最好的选择是使用 request interceptors .这是使用请求过滤器,从这些文档中稍微改编而来:

import play.api.Logger
import play.api.mvc._

object MaintenanceModeFilter extends Filter {
  def apply(next: (RequestHeader) => Future[Result])(request: RequestHeader): Future[Result] = {
    if (/* check for trigger */) {
      Logger.info("Sending maintenance mode response")
      Ok(/* your maintenance page */)
    } else {
      next(request)
    }
  }
}

object Global extends WithFilters(AccessLoggingFilter)

如果您愿意,您可能可以让它与 onRouteRequest 一起使用,这些文档中也提到了这一点。

关于playframework - Play 框架的维护模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28687933/

相关文章:

scala - 为什么 Play 框架不重新加载资源?

Play Framework Routes 中的 Scala 反引号

scala - 如何拥有一个使用playframework库的Scala独立应用程序

java - One Play 2 Framework App - 同时使用 java 和 scala

java - 在 Play 2.2.x 中使用 Ebean 的单向 OneToMany 中出现异常

java - 如何禁用 Play 2.6 CSRFFilter

playframework - Play 2 : play. libs.WS VS 3rd 方客户端库用于异步处理

java - 如何在安全模块 Play 1.2.5 中硬编码用户名和密码

Eclipse 与 Play Framework 无法解析的符号

java - Play Framework "find"(Finder) 结果缺少 OneToMany 关系数据