spring3.1 mvc 静态文件 访问

javaroom 发布于 2012/06/17 12:17
阅读 3K+
收藏 0

环境:jdk1.7,tomcat7.0.2,spring3.1.1

为了保护系统资源,把js,css,images文件夹都放到了WEB-INF下,页面在WEB-INF/jsp下,在网上发现一般都把org.springframework.web.servlet.DispatcherServlet的映射配置成/,因为我的有webservice,所以怕把service也直接拦截,所以我配置成了*.do,现在导致静态文件无法访问。网上的例子都是介绍的配置成/对应的静态文件的配置, 我也按相关的教程做了配置测试,都无法实现,都是404,我的配置如下:

<mvc:annotation-driven />
	<mvc:view-controller path="/" view-name="forward:/index" />
	<!-- 静态文件资源 -->
	<mvc:resources mapping="/images/**" location="/WEB-INF/images/" cache-period="31556926"/>
	<mvc:resources mapping="/css/**" location="/WEB-INF/css/" cache-period="31556926"/>
	<mvc:resources mapping="/js/**" location="/WEB-INF/js/" cache-period="31556926"/>
	<mvc:interceptors>
		<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
	</mvc:interceptors>
	<bean id="localeResolver"
		class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
	<bean id="messageSource"
		class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>messageResource</value>
			</list>
		</property>
	</bean>
	<bean id="validator"
		class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<property name="validationMessageSource" ref="messageSource" />
	</bean>
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="2097152" />
	</bean>
	<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>

也曾经将<mvc:default-servlet-handler/>配置进来,但无论是两个分别配置,还是同时配置,都无法访问静态资源,请高手帮忙!

目前我的折衷方法就是重新移出来了,先开发功能,静候大家支招!

加载中
0
景愿
景愿

"为了保护系统资源,把js,css,images文件夹都放到了WEB-INF下"

毫无意义...建议还是静态文件放到该放到地方再试试

0
j
javaroom
呵呵,我现在就是这样,都放回了原来的地方,感觉也没有什么意义,现在就是想知道怎么配置,万一以后有其它的需求呢,纯粹从求知的角度
0
定之方中
定之方中
    <mvc:resources mapping="/resources/**" location="/resources/" />

js/css/img 都放在resources目录下。

0
bluechant
bluechant
静态资源可以考虑用Apache Http Server 或者 Ngnix 处理;在spring3的servlet-mvc.xml中配置静态资源的路径为 http://{host}:{port}/;
0
dodojava
dodojava
你servlet里mapping配的是*.do,怎么能匹配上这些资源文件, 没有mapping, 都没进入spring, mvc-resource 肯定没用咯, 把mapping配成/, 或者多加几个mapping吧
0
klark
klark
后来 你 怎么 解决的 
返回顶部
顶部