我有一个使用ui路由器的角度应用程序,并由SpringMvc (4.2.4) java应用程序提供服务。我决定将任何请求映射到单个Controller/方法,该方法加载项目的单个JSP页面。
但是,当我试图添加静态资源映射,加载js和css文件时,这些静态资源将被忽略.在mayapp/resources/*路径中的每个请求都指向我的单个jsp页面。
这是我的配置:
web.xml
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>servlet.xml
<context:component-scan base-package="com.adveasys.omrh.front.web" />
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:resources mapping="/resources/**" location="/resources/">
<mvc:resource-chain resource-cache="false" auto-registration="false">
<mvc:resolvers>
<bean class="org.springframework.web.servlet.resource.GzipResourceResolver"/>
<bean class="org.springframework.web.servlet.resource.PathResourceResolver"/>
</mvc:resolvers>
</mvc:resource-chain>
</mvc:resources>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>MainController.java
@RequestMapping("/**")
public ModelAndView mainPage(HttpServletRequest request) throws JsonProcessingException {在出现此问题之前,我在web.xml中为每个/resources/*使用默认servlet,但我正在用maven生成脚本/css的.gz版本,我希望这种配置能够使用GzipResourceResolver。
的东西我已经试过了,但没有用
提前谢谢。
发布于 2016-01-08 14:55:12
好吧,在调试模式挖掘之后。HandlerMappings,在该顺序中:
在调用/resource/*文件时,RequestMappingHandlerMapping是第一个作为有效候选文件响应的。
在Spring配置中添加这样的命令之后:
<mvc:resources mapping="/resources/**" location="/resources/" order = "-1">啊,真灵。
https://stackoverflow.com/questions/34678695
复制相似问题