Google App Engine/J のローカル実行環境でCSSが参照できなくなる件
※Google App Engine & Slim3 & Mayaaの続きです。
>(とても気持ち悪いですが)ここは深追いせず、先に進もうと考えています。
と宣言していたのですが、
ひがさんからコメントをいただいたことも有って、少し調査を進めた結果をまとめておきます。
■おさらい
GAE上でSlim3+Mayaaの動作確認を行ったところ、下記の問題に遭遇。
「style.cssをリクエストすると、style.css/index.htmlのリクエストとして処理されてしまいCSSが適用されない」
- この問題はGAE(J)のローカル実行環境(=Eclipse)でのみ発生し、GAEにDeployした場合には発生しない
- 同種の問題はMayaaユーザ以外にも発生しているが、解決には至っていない模様
- この問題はmayaa-getting-start-gaeでも発生しており、コミッタの方も既に認識されている
■手順
(手順1)slim3-blankをベースに新規プロジェクトを作成
(手順2)mayaa-getting-start-gaeから必要なものをマージ
■手順1実施時点での挙動
実はプロジェクト名変更程度しかやっていないので、事実上slim3-blankそのものです。
■手順2実施時点での挙動
> Page not found, /css/global.css/index.html
■結論
■推論
上記の通りSlim3およびMayaa、それぞれのプロダクトに起因するものでは無いと結論付けて今回の調査を終えます。
とは言え、結果的に2つのプロダクトを比較したことで、(slim3-blankでは発生せず、mayaa-getting-start-gaeで発生するということから)両者の相違点を仔細に潰していけば確実に解決にする!というところまで絞り込んだつもりです。
後は他のタスクとの兼ね合いで、時間が空いた際にゆっくり追い込むことで解決しようと考えています。
■備忘録
※いざ絞込みに入る時のために手がかりとなる情報をまとめておきます。
1).appengine-web.xml
static-files要素とresource-files要素が良くわかっていないので勘というレベルですが、現時点ではたぶんコレが犯人だと思っています。
参考までに現在の設定内容は下記の通りです。
<static-files> <include path="**.css" /> <include path="**.js" /> <include path="**.png" /> <include path="**.gif" /> <include path="/docs/**" /> <exclude path="**.html" /> </static-files> <resource-files> <include path="**.html" /> <include path="**.mayaa" /> <include path="**.mjs" /> </resource-files>
2).web.xml
web-app要素の記載を拡張する必要が有るのが少し気になっています。
■slim3-blank
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.4">
■mayaa-getting-start-gaeマージ後
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
■追記 2009.06.28
ひがさんにコメントいただいた内容を一部反映し、現在は下記になっています。
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- CSS参照できない件については変化なし
- versionは2.4にしておかないとJSPのfunctionが使えなくなるらしい
- Mayaa内部からXerces経由で読んでいるらしく、xsi:schemaLocation属性は省略できない
■追記 2009.06.30
Slim3に盛り込んでいただくことになりました。
(結果的にはSlim3のweb.xmlのversionは2.5となります)
http://groups.google.co.jp/group/slim3-user-japan/browse_thread/thread/dffd933cadd61a0b