我正在使用Tomcat 7并希望提供一个简单的登录屏幕,然后将用户引导到基于Spring MVC / EXT-JS的门户。在web.xml中,我定义了对弹簧区域的访问,如下所示:
<servlet>
<servlet-name>portal-web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/portal-web-servlet-app-ctx.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>portal-web</servlet-name>
<url-pattern>/portal/*</url-pattern>
</servlet-mapping>
此部分工作正常(/ portal / *的URL正确定向)。但是我的静态登录页面现在没有提供,而且/index.html和/css/*.css调用返回404错误。我尝试将以下内容添加到我的web.xml中:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
这确实让我可以访问/index.html,但仍然无法访问css文件。
这是我的项目布局:
-src
-main
+extjs
+java
-resources
hibernate.cfg.xml
log4j2.xml
-webapp
-css
first.css
second.css
+WEB-INF
index.html
为什么tomcat不在webapp / css下提供静态文件?
谢谢!
答案 0 :(得分:1)
对我来说有用的是通过spring xml文件和mvc:resources标签控制静态映射到spring mvc。
在web.xml中:
<servlet>
<servlet-name>portal-web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/portal-web-servlet-app-ctx.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>portal-web</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在portal-web-servlet-app-ctx.xml中,我添加了以下内容:
<mvc:resources mapping="/resources/**" location="/resources/" />
我的文件夹布局现在如下所示:
-src
-main
+extjs
+java
-resources
hibernate.cfg.xml
log4j2.xml
-webapp
-resources
-css
first.css
second.css
index.html
+WEB-INF
我还建议任何玩这些xmls /文件夹的人都使用独立的tomcat。我使用的是eclipse集成的tomcat,很多时候我对xml文件/文件夹所做的更改都没有反映出来。