#ポイント
-
2.1.xとは記載が変わっているので注意
-
開発環境ではPlayFrameworkデフォルトのエラーページが表示したい。 __本番環境でだけ、GlobalSettingsの設定が生きてほしい__←これが重要
#本番環境のGlobalSettingsの用意
[project-name]/app/ProductionGlobal.scala
import play.api._
import play.api.mvc._
import play.api.mvc.Results._
import scala.concurrent.Future
/**
* User: takudo
* Date: 2014/01/19
* Time: 22:21
*/
object ProductionGlobal extends GlobalSettings{
/**
* エラーページを用意します。
*/
override def onError(request: RequestHeader, ex: Throwable) = {
//2.1.x系とは記述が異なるので注意。
Future.successful(InternalServerError(
//ビューファイルは適宜自分のところに用意してください。
views.html.error.error()
))
}
/**
* わかり易い例としてnot found ページを用意します。
*/
override def onHandlerNotFound(request: RequestHeader) = {
Future.successful(NotFound(
views.html.error.not_found()
))
}
}
設定ファイルの準備
- application.confは開発用、本番用などで分ける。
例:application.confは共通設定、dev.confが開発用、prod.confが本番用とする。
[project-name]/conf/application.conf
application.secret="xxxxxxxxxx"
[project-name]/conf/dev.conf
include "application.conf"
hoge.hoge="開発環境特有の設定"
[project-name]/conf/prod.conf
include "application.conf"
hoge.hoge="本番環境特有の設定"
#これが重要
application.global="ProductionGlobal" #グローバルオブジェクトのオブジェクト名を記述する。
#起動
##開発環境
cd /path/to/project
play debug
> run "-Dconfig.file=conf/dev.conf"
ブラウザで、ルート定義していないURLにアクセスして、 デフォルトのAction not foundページが出る ことを確認する。
##本番環境
cd /path/to/project
play clean stage
target/unversal/stage/bin/[project-name] -Dconfig.file=conf/prod.conf
ブラウザで、ルート定義していないURLにアクセスして、 自分の用意したNot foundページが出る ことを確認する。