2014-12-23 15 views
7

Sto scrivendo un'applicazione di avvio a molla e ho notato alcuni avvisi in chrome. Si lamenta che per esempio i caratteri web (estensione woff) vengono inviati come semplici/testo al posto del loro corretto tipo mime.Spring MVC (Boot) non invia il tipo MIME per determinati file (WOFF, ecc.)

Sto utilizzando il normale meccanismo per file statici senza configurazione speciale. Il codice sorgente che ho trovato sembra che non sia possibile aggiungere altri tipi di mimo per il ResourceHandler "stock". Il Resourcehandler invia il riconoscimento del tipo mime al contenitore servlet, che è il tomcat predefinito per spring-boot 1.2.

Mi manca qualcosa? Qualcuno conosce un modo semplice per migliorare la mappatura delle risorse per servire più tipi di file con il tipo mime corretto?

In questo momento sto pensando di scrivere un filtro che viene attivato per il contenuto statico e patch mancanti mimetipi dopo il fatto. Forse dovrei creare una richiesta di funzionalità a SpringSource ... ;-)

risposta

25

OK, trovato io stesso :-)

In avvio primavera è possibile personalizzare il servlet container con questo customizer e aggiungere nuovi tipi MIME lì.

@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

Ho fatto la stessa cosa con la mia applicazione, impostando i tipi js e css, ma per qualche motivo continuo a ottenere tipi mime errati. Qualche suggerimento su come assicurarsi che funzioni? –

+1

js e css dovrebbero funzionare immediatamente! Sei sicuro di non aver configurato correttamente Spring MVC? –

+0

Hai ragione. L'ho configurato male. In realtà sta ottenendo una pagina di login piuttosto che i file JS e CSS, quindi l'errore di tipo mime. –