2012-09-28 16 views
7

Serviamo alcuni caratteri Web (.woff) dalle nostre risorse statiche e vorrei impostare il tipo mime corretto (application/x-font-woff). Ho provato a fare questo in config/initializers/mime_types.rb ma non ha avuto alcun effetto:Rails 3 web font (woff) mime type

Mime::Type.register "application/x-font-woff", :woff 

Il tipo mime tornato ancora rimasto application/octet-stream. Ho anche provato ad aggiungere questa linea (perché era l'unico altro posto nella fonte rotaie dove ho potuto trovare la stringa "woff"):

Rack::Mime::MIME_TYPES[".woff"] = "application/x-font-woff" 

Ma ancora non ha aiutato. Come imposto correttamente il tipo mime per i caratteri web?

risposta

12

Fino Rack fissa il suo elenco tipo MIME ad una corretta woff, l'hack ad interim è davvero la vostra linea config/initializers/mime_types.rb:

# tell Rack (and Sprockets) about modern font MIME types: 
Rack::Mime::MIME_TYPES['.woff'] = 'application/x-font-woff' 

per avere in realtà abbia effetto, però, è necessario per pulire tmp/cache e riavviare il server.

+0

Infatti, devo cancellare la cache per farlo funzionare. Grazie. – panzi

+1

Vedere anche http://stackoverflow.com/questions/2871655/proper-mime-type-for-fonts per i dettagli sugli ultimi –

0

Anche se non ho trovato alcuna soluzione di hacking, l'ho ricercato alcuni giorni fa (sul mio server di sviluppo 3.2 rails che esegue WEBRick, per riferimento), ed è Sprockets che imposta il tipo MIME errato sul risposta, forse delegando la scelta a Rack, che ha una nozione stupida su quale tipo MIME passare per i caratteri (a partire da this ravinggenious commit).

Ho archiviato un (dettagliato) ticket on Sprockets e un pull request on Rack, sperando che sarebbe stato corretto a monte dove invece ha più senso, ma nessuno dei due ha ancora visto molta azione. Probabilmente avrei dovuto prestare più attenzione anche a TTF e EF, ma era tardi e non ci pensavo al momento.

(Commentando su entrambi potrebbero aumentare la consapevolezza del problema -? Un problema non è un problema, un mucchio di persone è un valore di fissaggio problema :-)