我在映射外部资源时遇到问题。具体来说,在我的app-servlet.xml中,我具有以下内容:
final
我的web.xml
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="lang"/>
<property name="defaultLocale" value="en"/>
</bean>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang"/>
</bean>
</mvc:interceptor>
</mvc:interceptors>
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="file:C:/Users/username/Desktop/translations/translation"/>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<array>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8"/>
</bean>
</array>
</property>
</bean>
<mvc:resources mapping="/content/**" location="file:C:/Users/username/Desktop/content/"/>
<!-- <mvc:default-servlet-handler/>-->
<mvc:annotation-driven/>
我尝试了任何可能的组合以及是否使用<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
,但是当我尝试访问具有外部资源的页面时,在浏览器的“网络”标签中看到应用程序返回200,但内容是未加载。
我在ResourceHttpRequestHandler类中添加了一个断点,并显示了启动时调用方法<mvc:default-servlet-handler/>
,但是当我尝试从中加载内容时未调用setLocations(List<Resource> locations)
。 handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
,
日志也没有任何提示。
我还尝试通过Tomcat server.xml映射外部位置,但没有结果。
有什么想法为什么会发生?