我正在使用id="WebApp_ID" version="2.5"
进行Spring MVC项目,以及
我有一些资源,我想包含在我的JSP文件中。 HTML包含一些.css / .js / .png和其他格式文件,它们位于“assets”文件夹中。
这是我的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>title</display-name>
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
这是spring-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jms="http://www.springframework.org/schema/jms"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="basepackge" />
<mvc:resources mapping="/assets/**" location="/WebContent/WEB-INF/assets/" />
<mvc:annotation-driven/>
<bean id="viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix"> <value>/WEB-INF/</value></property>
<property name="suffix"> <value>.jsp</value></property>
</bean>
</beans>
如上所述,我有一个资产文件夹和HTML文件,它们使用资产文件夹中的.js / .css。这两个都在WEB-INF文件夹中。现在,当我在我的JSP中包含这样的HTML文件时,不会加载.png / .js / .css文件。有人可以帮忙吗?
答案 0 :(得分:0)
你的问题在于映射。您已在spring-dispatcher-servlet.xml中使用/ WEB-INF /定义了前缀,这是正确的:
<property name="prefix"> <value>/WEB-INF/</value></property>
但是,然后告诉Spring您的资产位于/ WebContent / WEB-INF / assets /文件夹中:
<mvc:resources mapping="/assets/**" location="/WebContent/WEB-INF/assets/" />
这两者的结合告诉Spring解决与/ assets / **到{prefix} {location}的任何请求映射,这将是/ WEB-INF / WebContent / WEB-INF / assets /
将您的assets / **映射中的位置更改为以下内容(删除&#39; / WebContent / WEB-INF&#39;):
<mvc:resources mapping="/assets/**" location="/assets/" />