2017-06-29 99 views
0

我試圖配置我的春節,引導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 –

回答

0

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