私はGAE/Jアプリに取り組んでおり、次の構造を持っています:
- war
|
- mobile
| |
| - assets
| | |
| | + a.jpg
| | + b.gif
| | + c.js
| + a.jsp
| + b.jsp
| + index.jsp
| + d.css
| + e.css
|
+ landing.jsp
web.xml には、 を/mobile
指すURL マッピングがあります<jsp-file>/mobile/index.jsp<jsp-file>
。私のindex.jsp
では、相対アドレス指定を使用して、JS ファイル、CSS ファイル、画像などの必要なすべてのリソースを参照しました。our_domain/mobile/index.jsp
ブラウザに入力すると、これはうまく機能します。しかし、入力するour_domain/mobile
と、正しいファイル (index.jsp) が提供されますが、すべての相対アドレスが壊れます。これは、CSS、JS、画像がないことを意味します。私の調査によると、web.xml
実際にリダイレクトするのではなく、指定された JSP/サーブレットを呼び出して特定の URL パターンに応答するようです。これは、実際のリダイレクトで正しいパス情報がルートに残されるため、相対アドレス指定ではうまく機能しません。この種のシナリオで相対アドレスが期待どおりに機能することを確認するにはどうすればよいですか?
[編集] いくつかの構成を試しました。/mobile
URL が正しく機能し、すべての CSS が読み込まれるようになりましたが、CSS が読み込まれませ/mobile/
ん。これが私のマッピングです:
<servlet> <description>Landing page on mobile site</description>
<display-name>MobileIndex</display-name>
<servlet-name>MobileIndex</servlet-name>
<jsp-file>/mobile/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile</url-pattern>
</servlet-mapping>