Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

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には何の記述もない。