Tipo MIME per i caratteri WOFF?


556

Che tipo di mime dovrebbe essere servito ai caratteri WOFF?

Sto servendo caratteri TrueType (ttf) come font/truetypee opentype (otf) come font/opentype, ma non riesco a trovare il formato corretto per i caratteri WOFF.

Ho provato font/woff, font/webopene font/webopentype, ma Chrome si lamenta ancora:

"Risorsa interpretata come carattere ma trasferita con tipo MIME application / octet-stream."

Qualcuno lo sa?


1
Quindi non c'è modo di smettere di lamentarsi di Chrome?
John Mee,

1
Ecco la soluzione Node.js / Meteor: npm install mime
Eric Leroy,

nota anche l'altra configurazione che alla fine ha risolto il mio problema in IIS stackoverflow.com/questions/12458444/…
Iman

1
font/woffè ora il tipo MIME corretto per woff e Chrome non si lamenta.
Mikael Dúi Bolinder,

Risposte:


737

Aggiornamento dal commento di Keith Shaw del 22 giugno 2017:

A partire da febbraio 2017, RFC8081 è lo standard proposto. Definisce un tipo di supporto di livello superiore per i caratteri, quindi i tipi di supporto standard per WOFF e WOFF2 sono i seguenti:

font/woff

font/woff2


Nel gennaio 2011 è stato annunciato che nel frattempo Chromium lo riconoscerà

application/x-font-woff

come il tipo mime per WOFF. So che questo cambiamento è ora in Chrome beta e se non è ancora stabile, non dovrebbe essere troppo lontano.


8
a partire da Chromium 18.0, 2012/08/30, è necessario utilizzare application / x-font-woff
cc young

6
Come ha detto cc young, per sbarazzarsi dell'avvertimento di Chrome "Risorsa interpretata come carattere ma trasferita con l'applicazione di tipo MIME / font-woff" è necessario utilizzare "application / x-font-woff"
Jamie

9
La versione di Chrome 24.0.1312.52 sembra ancora rispondere con "Risorsa interpretata come carattere ma trasferita ..." se si utilizza application / font-woff. Per ora sembra ancora che debba usare "application / x-font-woff".
Nicholi

4
Secondo il seguente Webkit, commetterà font/woffe application/x-font-woffverrà rimosso a favore di application/font-woff. Inoltre, l'avviso è stato ridotto a un messaggio di registro. trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/…
Jorrit Schippers

6
E il nuovo .woff2?
The Muffin Man,

135

Per me, il prossimo ha funzionato in un file .htaccess.

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
AddType font/woff2 .woff2   

2
Non posso credere che più persone non lo abbiano trovato utile. Questo è l'unico che ha funzionato per me.
Tim Joyce,

4
Al momento di porre questa domanda 'font / woff' non funzionava. Qualcuno può confermare che ora lo fa?
Nico Burns,

5
In IIS Express, puoi aggiungere un elemento mimeMap a web.config in configuration / system.webServer / staticContent:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik

6
a partire da Chrome 18, ha smesso di funzionare. ora application / x-font-woff sembra funzionare.
cc giovane

4
Per la cronaca, Google Fonts utilizza font/woffe font/woff2.
DisgruntledGoat

55

Lo sarà application/font-woff.

vedi http://www.w3.org/TR/WOFF/#appendix-b (Raccomandazione del candidato W3C 04 agosto 2011)

e http://www.w3.org/2002/06/registers-mediatype.html

Da Mozilla css note carattere-faccia

In Gecko, i caratteri Web sono soggetti alla stessa limitazione di dominio (i file dei caratteri devono trovarsi sullo stesso dominio della pagina che li utilizza), a meno che i controlli di accesso HTTP non vengano utilizzati per allentare questa limitazione. Nota: poiché non esistono tipi MIME definiti per i caratteri TrueType, OpenType e WOFF, il tipo MIME del file specificato non viene considerato.

fonte: https://developer.mozilla.org/en/CSS/@font-face#Notes


3
Ma come indicato da Marcel dopo, Chromium riconoscerà application / x-font-woff secondo RFC 2048 fino a quando non verrà accettata application / font-woff.
jflaflamme,

2
La specifica WOFF è ora una raccomandazione e non cambierà dall'applicazione / font-woff w3.org/TR/WOFF/#appendix-b
Steve Workman,

26

Riferimento per l'aggiunta di tipi mime di caratteri a .NET / IIS

tramite web.config

<system.webServer>
  <staticContent>
     <!-- remove first in case they are defined in IIS already, which would cause a runtime error -->
     <remove fileExtension=".woff" />
     <remove fileExtension=".woff2" />
     <mimeMap fileExtension=".woff" mimeType="font/woff" />
     <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
  </staticContent>
</system.webServer>

tramite Gestione IIS

screenshot dell'aggiunta di tipi mime woff a IIS



19

A partire da febbraio 2017, RFC8081 è lo standard proposto. Definisce un tipo di supporto di livello superiore per i caratteri, quindi i tipi di supporto standard per WOFF e WOFF2 sono i seguenti:

font/woff
font/woff2

10

Nota: questa risposta era corretta al momento, ma è diventata obsoleta nel 2017 quando è stato rilasciato RFC 8081

Non esiste un fonttipo MIME! Pertanto, font/xxxè SEMPRE sbagliato.


@UmarFarooqKhawaja questa risposta è incompleta, ma non sbagliata. L'unica cosa che è cambiata tra questa risposta e il tuo commento è application/font-woffstata aggiunta allo standard, sostituendo cose come application/x-font-woff(l'effettivo aggiornamento del software in pratica è un'altra questione). Nulla ha reso validi i tipi di contenuto madey-highy del modulo font/xxx.
Jon Hanna,


5

Aggiungi quanto segue al tuo .htaccess

AddType font/woff woff

in bocca al lupo




2

So che questo post è un po 'vecchio ma dopo aver trascorso molte ore a cercare di far funzionare i caratteri sulla mia macchina locale nginx e provando un sacco di soluzioni, ho finalmente ottenuto quello che funzionava per me come un fascino.

location ~* \.(eot|otf|ttf|woff|woff2)$ {
    add_header Access-Control-Allow-Origin *;
}

All'interno della parentesi puoi inserire le estensioni dei tuoi caratteri o generalmente i file che vuoi caricare. Ad esempio l'ho usato per i caratteri e per le immagini (png, jpg ecc. Ecc.), Quindi non confonderti che questa soluzione si applica solo ai caratteri.

Inseriscilo nel tuo file di configurazione nginx, riavvia e spero che funzioni anche per te!


1

Forse questo aiuterà qualcuno. Ho visto che su IIS 7 .ttfè già un tipo MIME noto. È configurato come:

application/octet-stream

Così ho solo aggiunto che per tutti i tipi di font CSS ( .oet, .svg, .ttf, .woff) e IIS iniziato a servirli. Inoltre, gli strumenti di sviluppo di Chrome non si lamentano della reinterpretazione del tipo.

Saluti, Michael


8
'application / octet-stream' è l'equivalente del web server che dice "Non so cosa sia".
Synchro,

1
Si, lo so. Ma il punto chiave è che ha funzionato mentre molte delle opzioni più specifiche non sembrano comportare l'utilizzo dei caratteri su IIS7. Il mio commento è stato più pragmatico che cercare di essere il più corretto (perché non funzionava).
Michael Kennedy,

1

Per tutta la soluzione index.php rimuovere il modulo url e il file woff consentiti. per scrivere sotto il codice nel file .htaccess e fare questa alternanza al tuo file application / config / config.php: $ config ['index_page'] = '';

Solo per server di hosting Linux. Dettagli del file .htaccess

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

0

IIS ha automaticamente definito .ttf come application / octet-stream che sembra funzionare bene e fontshop consiglia di definire .woff come application / octet-stream


0

WOFF:

  1. Formato carattere Web aperto
  2. Può essere compilato con contorni TrueType o PostScript (CFF)
  3. Attualmente è supportato da FireFox 3.6+

Prova ad aggiungere che:

AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf


-1

Il tipo Mime potrebbe non essere il tuo unico problema. Se il file dei caratteri è ospitato su S3 o su altri domini, potresti inoltre avere il problema che Firefox non caricherà i caratteri da domini diversi. È una soluzione semplice con Apache, ma in Nginx ho letto che potrebbe essere necessario codificare i file dei font in base-64 e incorporarli direttamente nel file CSS dei font.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.