我正在开发一个 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
指向<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/Servlet 来响应特定的 URL 模式。这不适用于相对寻址,因为对于真正的重定向来说是正确的路径信息会留在根目录中。在这种情况下,如何确保相对地址按预期工作?
[编辑] 我尝试了多种配置。现在/mobile
URL 可以正常工作,我的所有 CSS 都已加载,但/mobile/
没有加载我的 CSS。这是我的映射:
<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>