我正在使用Spring-MVC4开发一个Web应用程序,我对静态资源处理程序有一种奇怪的行为。当我设置资源处理程序如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
一切正常但是当我设置以下配置时,我的webapp不处理静态资源(css和js):
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
//registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
PS:myweb我的Web初始化程序
public class MyWebInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebAppConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootAppConfig.class};
}
}
我只有这个应用程序有此行为,在另一个应用程序中只是覆盖addResourceHandlers或configureDefaultServletHandling方法工作而没有setOrder 任何想法?
答案 0 :(得分:0)
我在控制器中犯了一个错误,我写了这个:
B
我忘了指定&#34; RequestMapping&#34;值(我设置名称=&#34; / team / add / process&#34;)。这意味着&#34; excuteAddTeamForm&#34;被视为默认的处理程序方法。因此,当浏览器向服务器发送GET请求时(使用GET / resources / **),此请求由excuteAddTeamForm处理,因为ResourceHandlerRegistry的优先级低于servletDispatcher。