2014-12-23 6 views
7

Ich schreibe eine Spring-Boot-basierte Anwendung und bemerkte ein paar Warnungen in Chrom. Es beschwert sich, dass zum Beispiel Web-Fonts (Extension Woff) als Plain/Text anstelle ihres korrekten Mime-Typs gesendet werden.Spring MVC (Boot) sendet keine MIME-Typ für bestimmte Dateien (WOFF, etc)

Ich verwende den regulären Mechanismus für statische Dateien ohne spezielle Konfiguration. Der Quellcode, den ich gefunden habe, sieht so aus, als ob es nicht möglich ist, mehr Mimetypen für den ResourceHandler "stock" hinzuzufügen. Der Resourcehandler sendet die MIME-Typerkennung an den Servlet-Container, der als Standard-Tomcat für Spring-Boot 1.2 verwendet wird.

Fehle ich etwas? Kennt jemand eine einfache Möglichkeit, die Ressourcenzuordnung zu verbessern, um mehr Dateitypen mit dem richtigen Mime-Typ zu bedienen?

Im Moment denke ich, einen Filter zu schreiben, der für statischen Inhalt ausgelöst wird und fehlende Mimetypen nach der Tat patcht. Vielleicht soll ich eine Feature-Anfrage bei Springsource ... ;-)

Antwort

25

OK schaffen, fand es selbst :-)

Im Frühjahr Boot können Sie die Servlet-Container mit diesem Customizer anpassen und neue MIME-Typen dort hinzuzufügen.

@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

Ich habe das gleiche mit meiner Anwendung gemacht, die js und css-Typen einstellen, aber aus irgendeinem Grund immer noch falsche Mime-Typen bekommen. Irgendwelche Vorschläge, wie es funktioniert? –

+1

js und css sollten aus der Box funktionieren! Sind Sie sicher, dass Sie den Feder-MVC nicht falsch konfiguriert haben? –

+0

Sie haben Recht. Ich habe es schlecht konfiguriert. Es erhält tatsächlich eine Login-Seite statt der JS- und CSS-Dateien, daher der MIME-Type-Fehler. –