繁体   English   中英

具有Spring配置类的静态资源

[英]Static resources with Spring configuration-class

我的jsp会加载一些其他文件,例如css和js文件,就像几乎每个网站都这样:

<script src="js/dhtmlx/dhtmlx.js"></script>

现在的问题是,Spring希望分派请求,并且没有为它找到合适的处理程序,这是正确的。 我在配置类中尝试了以下操作:

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/js/**").addResourceLocations("/js/");
}

这不起作用,Spring仍想调度请求:

org.springframework.web.servlet.PageNotFound noHandlerFound
WARNING: No mapping found for HTTP request with URI [...URI/js/dhtmlx/dhtmlx.css] in DispatcherServlet with name 'keza'

我怎么能告诉spring这不是框架应该用dispatcherServlet调度的请求?

确保您的js文件夹在src \\ main \\ webapp \\ resources下可用

1.使用mvc资源

<mvc:resources mapping="/resources/**" location="/public-resources/"/>

这样就可以投放位置可以指定为Spring 资源的任何静态内容

2.使用mvc:default-servlet-handler:

<mvc:default-servlet-handler />

即使Dispatcher Servlet在/处注册,这也提供了一种从Web应用程序根目录提供静态内容的方法,有关如何执行此操作的详细信息,请参见此处的Spring文档站点-简而言之,将职责委托给容器默认servlet。

使用Spring注释的MVC资源

@Configuration  
@EnableWebMvc  
public class WebAppConfig extends WebMvcConfigurerAdapter {  

        @Override  
        public void addResourceHandlers(ResourceHandlerRegistry registry) {  
                registry.addResourceHandler("/resources/**").addResourceLocations("/public-resources/");  
        }  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM