我有一个使用ui-router的角度应用程序,由SpringMvc(4.2.4)java应用程序提供服务。我决定将任何请求映射到一个Controller /方法,该Controller加载我项目的单个JSP页面。
但是,当我尝试添加静态资源映射时,要加载js和css文件,这些静态资源会被忽略... [mayapp] / resources / *路径中的每个请求都会导致我的单个jsp页面。< / p>
这是我的配置:
的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。
我已经尝试过但没有用的东西
提前致谢。
答案 0 :(得分:0)
好的, 在调试模式下挖掘。 HandlerMappings按此顺序排列:
当调用/ resource / *文件时, RequestMappingHandlerMapping 是第一个作为有效候选者回复的人。
在Spring配置中添加这样的订单后:
<mvc:resources mapping="/resources/**" location="/resources/" order = "-1">
有效。