2014-12-23 58 views
7

我正在編寫一個基於spring引導的應用程序,並注意到chrome中的一些警告。它抱怨說,例如Web字體(擴展woff)以純文本形式發送,而不是正確的MIME類型。Spring MVC(引導)不發送某些文件的MIME類型(WOFF等)

我正在使用靜態文件的常規機制,無需特殊配置。 我發現的源代碼看起來像是不可能爲「股票」ResourceHandler添加更多的mimetypes。 Resourcehandler將mime類型識別分派給servlet容器,該容器是spring-boot 1.2的默認tomcat。

我錯過了什麼嗎?有人知道一種簡單的方法來增強資源映射以使用正確的MIME類型提供更多的文件類型嗎?

現在我正在考慮編寫一個靜態內容觸發的過濾器,並在事後處理缺失mimetypes的補丁。也許我應該在創建SpringSource的... ;-)

回答

25

OK功能請求,發現自己:-)

在春季啓動時,您可以使用此定製自定義Servlet容器,並添加新的MIME類型存在。

@Component 
public class ServletCustomizer implements EmbeddedServletContainerCustomizer { 

    @Override 
    public void customize(ConfigurableEmbeddedServletContainer container) { 
     MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT); 
     mappings.add("woff","application/font-woff"); 
     mappings.add("woff2","application/font-woff2"); 
     container.setMimeMappings(mappings); 
    } 
} 
+0

我已經做了同樣的事情,與我的應用程序,設置js和css類型,但由於某種原因仍然得到不正確的MIME類型。有關如何確保其正常工作的任何建議? –

+1

js和css應該可以開箱即用!你確定你沒有錯誤配置spring MVC嗎? –

+0

你說得對。我配置得很差。它實際上是獲取登錄頁面而不是JS和CSS文件,因此是mime類型錯誤。 –