札幌のWebエンジニアの綴る日常と開発の日々。GoogleAppEngine/slim3/Django/NetBeans/Swing/JavaFXを中心にお届け。TeedaなどJavaEEでウェブアプリを構築する場合、バックエンドのTomcatやGlassfishにApacheから転送すると思います。CSSなど静的なファイルまでTomcatに処理させるのはムダなので、これらはApacheで処理を終わらせるような設定を行いましょう。使えば簡単じゃんと思いますが、開発時もスムーズに動くようにするには結構工夫が必要です。開発時に運用時の環境を踏まえておき、デザイナ、プログラマ、デプロイヤー(?)のタスクがスムーズに回るようにしましょう。構成サーバアドレスのルート直下にアプリケーションが展開され、それらはTeedaで構築しているとします*1。静的ファイルに関してはまとめて扱う方が便利なので、1つのディレクトリに納めてしまいます。detail.htmlこう構成しておくと、htmlをDreamweaver等で編集するのが楽です。開発環境ではうまく動かないのでちょっと細工します(後述)。先に運用時の設定ですが、Apacheの設定ファイルに次のように記述します。ajp://localhost:8009/ProxyPassでajp://localhost:8009/に転送をかけていますが、あらかじめ特定のパスに関しては通さないように記述するだけです。上から適用されるので順番に注意してください。これで通常のドキュメントルート(/var/www/html/media/)の下に静的ファイルを置けばよいことになります。デプロイ時デプロイに使用しているシェルスクリプトは自分の場合、次のようなステップです。Eclipse上からTomcatを起動するかと思いますが、デフォルトのままであるとアプリケーション名がパスに含まれ、静的ファイルへアクセスできません。同時に開発するアプリが1つしかない場合は、アプリケーションのルートパスを/にすることで解決しますが、管理画面とわけて開発している場合などはそうもいきません。いって、わけて管理するのはもっと嫌です。そんな場合は、Tomcatに次のようなしてWebアプリの設定をします。&gt;&lt;/Context&gt;これでTomcatには/mediaというウェブアプリが作成される事になり、上手い具合にパスが通るようになります。デザイナ視点でデザイナ*2としてはwebapp以下をサイト管理に定義すれば、通常通りのデザイン作業が可能です。Teedaではタグがデザインを破壊することはありませんのでさらに開発しやすいですね!ただし、ソースコードの管理はプログラマ側にあわせてしっかりやることを忘れないようにしてください!尚、プログラマ側の環境(Eclipse)に合わせるように/media以下は相対パスではなく絶対パスで記述します。プログラマ視点でプログラマ*3としては、そんな事しなくても簡単に設定できると思わないでください。JavaはEclipseで開発を行うように、HTMLはDreamweaverという開発環境で作成しています。そちらに合わせることで、コーディングを一任できるわけです。SVNからアップデートすればいいだけになりますよ!Teeda関連のTipsは色々あるのになかなか書き留める時間がとれない・・・orzツイートする*1:尚、Teedaではデフォルトでは/view/がつく。サフィックスがhtmlにしておく。17:46静的ファイルをTomcatで扱う必要が出てきて、参考にさせていただきました。ひとつ質問なのですが、media/cssや、media/jsなどの、mediaよりも下の階層にあるファイルについても、参照できるのでしょうか?私の環境では、http://localhost:8080/media/hoge.jpgのように、フォルダの直下にある画像ファイルは参照できるのですが、http://localhost:8080/media/foo/hoge.jpgのように、さらに下の階層のファイルについては、404が返ってきてしまいましたもし何かご存知であれば、教えていただければ幸いです。何はともあれ、分かりやすい記事ありがとうございました。