0
我試圖加載靜態資源,如css文件和JavaScript文件在我的jsp文件中使用相對路徑,但似乎通過servlet映射重寫映射到他們。春天無法加載靜態資源
項目結構:
webapp/
assets/
scripts/
dashboard.js
styles/
common.css
WEB-INF/
views/
pages/
home/
body.jsp
的web.xml:
...
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
...
MVC-調度-servlet.xml中:
<import resource="applicationContext.xml" />
<context:component-scan base-package="com.nickythorne.controller" />
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" >
<property name="definitions" value="/WEB-INF/tiles-definitions.xml" />
</bean>
<mvc:resources mapping="/assets/**" location="/assets/" />
我在那裏我想我的JSP文件加載樣式表:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}" />
<link rel="stylesheet" type="text/css" href="<c:url value='/assets/styles/common.css'/>" />
我得到的錯誤是:
WARN org.springframework.web.servlet.PageNotFound:1108 - 發現用於與URI [/project/assets/styles/common.css]在HTTP請求沒有映射DispatcherServlet的名稱爲 'MVC-調度'
c:url自動將上下文前導到路徑。 – Nick
問題在於調度程序試圖解析path/project/assets/styles /作爲視圖。但顯然它不能被發現,因爲它不存在。我需要以某種方式從servlet中排除/ assets/**路徑。 – Nick