Locked History Actions

Play/Deploy

デプロイ

参考

スタンドアロン

コンテナの類は使わず、スタンドアロンで動作させる。上記の文書では、これを具体的にどうするのか記述がない。おそらくはすべてのファイルをほぼそのまま(application.conf等は除く)まるまるコピーすればよいと思われるが、しかし開発環境と実行環境のplayのインストール位置が異なる場合は当然動作しない。

ドキュメントはたしかに不十分で不明点が多々ある。例えば、以下のような質疑がある。

デプロイの方法

プロジェクトを別マシンに移動させて動作させる場合、単に以下のディレクトリをそのままコピーすればよい。

app
conf
lib
modules
public

play自体は、playコマンドの直下に環境があるという前提らしいので、特に開発マシンとは別のディレクトリにplayがインストーうされていても問題ない。ただし、play-scalaではscalaモジュールの場所の指示が必要のようだ。これは、modules/scala-0.9に記述されているので、これを修正する。

prodモードでの動作

開発マシンでも本番マシンでもどちらでもよいのだが、プロダクションモードで動作させる最も簡単な方法は、

play run --%prod

として起動すること。application.confにあらかじめこのモードが記述されているので上記のスイッチを指定すればよい。

このとき、JVMがどうしたとかいうエラー(詳細は忘れた)が発生する場合があるが、これはJAVA_HOMEを設定していないせい。 JAVA_HOMEを指定すれば正しく動作する。

初期状態での動作の違い

「play new --with scala」等でプロジェクトを作成し、全く編集を行っていない場合、開発モードでは。

cap1.png

という表示になるが、--%prodをつけて起動すると、以下の表示なる。

cap2.png

これについてマニュアルには何の説明も無い(らしい)ので、初心者は混乱する(実際非常に無駄な時間を使った)。 index.htmlに指定されている「#{welcome/}」というタグは、play1.2.1/framework/templates/tags/welcome.htmlというファイルをひっぱってくるのだが、このファイルには以下のように記述されている。

#{set title:'Your application is ready !' /}

#{if play.mode.toString() == 'DEV'}
    
.... たくさんのタグ

#{/if}
#{else}
    <h1>Your application is ready!</h1>
#{/else}

つまり、わざわざ開発モードでは開発ガイドを表示させているのだが、本番モードでは「Your application is ready!」とだけ表示させているのである。

また、この件(framework/templates/tags/などというディレクトリを参照すること)についてhttp://playdocja.appspot.com/documentation/1.2/templates#tagsには何の記述もない。