是否有任何方法可以显示静态HTML页面,以便在Play Framework正在编译新代码时解释网站是否处于维护状态?
我可以看到我们如何手动创建维护页面,例如在进行长数据库或文件更改时(应用程序可能处于不一致状态),但是有没有内置的方法Play Framework?
我知道像Nginx这样的其他主要服务器软件有办法在这里显示静态资源。由于Play Framework也是服务器软件,它是否具有等效的?
答案 0 :(得分:4)
不确定。最好的办法是使用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
一起使用,这些文档中也会提及。