春天未能找到ResourceHandler

问题描述:

我试图配置我的春节,引导MVC应用程序服务于我的resources目录static\recordings下的一些音频文件映射静态资源。春天未能找到ResourceHandler

我已经添加下面的映射

public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/recordings/**.wav", "/recordings/**.mp3").addResourceLocations("/static/recordings/"); 
} 

然而,请求之一:

/recordings/general/en/en-general-choose-language.wav 
static/recordings/general/en/en-general-choose-language.wav 

在日志中给出了404,在该(略微调整基于路径,当然):

Looking up handler method for path /recordings/general/en/en-general-choose-language.wav 
Did not find handler method for [/recordings/general/en/en-general-choose-language.wav] 

我有一个解决方法与控制器和写入文件内容到resp onse流,但它似乎很愚蠢,必须这样做,以提供静态文件。

+0

你可以尝试'公共无效addResourceHandlers(ResourceHandlerRegistry注册表){ 注册表 .addResourceHandler( “/资源/ **”) .addResourceLocations( “/资源/”); }'在你的配置类? – harshavmb

+0

如果使用springboot,那么你可以设置'spring.resources.static-locations' – harshavmb

+0

试着去阅读有关如何提供静态内容和春天开机,这是我的职位之一:https://stackoverflow.com/questions/ 41057042 /弹簧引导CSS-显示向上空白,不加载,后试图-一切/ 41058923#41058923 –

ResourceHandlerRegistry#addResourceHandler的文档指出以下几点:http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistry.html#addResourceHandler-java.lang.String...-

模式,如 “/静态/ **” 或 “/css/{filename:\w+\.css}” 是允许的。有关语法的更多详细信息,请参阅AntPathMatcher。

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

在AntPathMatcher的描述中,我们找到一个例子符合您的需求。

组织/ springframework的/ **/* JSP - 匹配所有.jsp文件的组织下/ springframework path

因此,请尝试"/recordings/**/*.wav"作为处理程序模式。

+0

运用这种变化没有工作。 – ThisIsNoZaku