java - Spring MVC 3.1.1 外部资源不起作用
问题描述
我在映射外部资源时遇到问题。具体来说,在我的 app-servlet.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/>
我的 web.xml
<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>
我尝试了任何可能的组合,也尝试了使用和不使用,<mvc:default-servlet-handler/>
但是当我尝试使用外部资源访问页面时,我在浏览器的“网络”选项卡中看到应用程序返回 200,但未加载内容。
我在 ResourceHttpRequestHandler 类中添加了一个断点,并显示了setLocations(List<Resource> locations)
在启动时调用的方法,但是handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
当我尝试从例如加载内容时没有调用该方法http://localhost:8080/app/content/testImage.png
,
日志也没有提出任何建议。
我还尝试通过 Tomcat server.xml 映射外部位置,但没有结果。
任何想法为什么会发生这种情况?
解决方案
推荐阅读
- r - rowSums(out_pathway) 中的错误:“x”必须是至少二维的数组
- javascript - Typo 不想在 ios 和 android 项目上链接
- actionscript-3 - AS3:拖放对象的触摸事件问题
- css - JavaFX - 不同的默认 CSS 窗口和 linux?
- laravel - laravel 验证不适用于 Auth
- paraview - paraview:加载共享库时出错:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录
- asp.net - 具有不变名称“Oracle.DataAccess.Client”的 ADO.NET 提供程序未注册或无法加载
- php - 了解查询并将其转换为 Oracle SQL
- c# - 使用 Xelement 时如何换行
- python - 如何自动裁剪徽标图像的背景(最好是任何颜色)