2015-10-18 14 views
8

Mentre lavoravo in locale, tutto ha funzionato perfettamente, ora ho caricato su un hosting e i font sono stati bloccati da qualcosa che non ho mai sentito nominare (CORS). I caratteri (e css, js, ecc.) Sono in un sottodominio perché gli URL vengono analizzati dall'indice (quindi i percorsi non funzionano nel dominio). I css/j stanno funzionando bene.sono bloccati nel client web cors

Questa è l'uscita nella console web (Firefox):

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Oxygen-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown> 
downloadable font: download failed (font-family: "Oxygen-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Oxygen-Regular.ttf styles.css:10:12 
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Montserrat-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown> 
downloadable font: download failed (font-family: "Montserrat-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Montserrat-Regular.ttf styles.css:6:12 
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff2. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown> 
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:1): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff2 bootstrap.css:267:12 
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown> 
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:2): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff bootstrap.css:267:12 
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown> 
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:3): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.ttf bootstrap.css:267:12 

Ho cercato per questo problema, ma non riesco a trovare questo problema especific con font e il messaggio di errore esatto.

EDIT:

La correzione è quello di consentire l'intestazione per il dominio/cartella di servire i file. La configurazione può essere nel blocco host virtuale o in un file .htaccess (nella cartella in cui si trovano i file). Io preferisco l'impostazione nel blocco vhost:

<IfModule mod_headers.c> 
    SetEnvIf Origin "https://(www|sub1|sub2|sub3).domain.com)$" ACAO=$0 
    Header set Access-Control-Allow-Origin "%{ACAO}e" env=ACAO 
    Header set Access-Control-Allow-Methods "GET" 
</IfModule> 

In questo esempio, il Access-Control-Allow-Origin invierà solo l'intestazione del dominio autorizzato e sottodomini. Devio reindirizzare da domain.com a www.domain.com quindi questo esempio non accetterà un dominio senza www.

+0

solo Google come impostare l'intestazione menzionato con il tuo web server e hai finito – Marged

+0

Scusa, quale colpo di testa? È la prima volta che ho questo problema e mi sono perso :( –

+1

Access-control-allow-origin, è mostrato nel messaggio di errore. Dai un'occhiata a enable-Cors.org o usa il tuo motore di ricerca preferito – Marged

risposta

5

tuo browser si lamenta un colpo di testa mancante: Access-Control-Allow-Origin

Perché questa intestazione non è presente il browser non sa che l'accesso desiderato è regolare. Dai uno sguardo a http://enable-cors.org e scegli la configurazione appropriata per il tuo server.

È necessario configurare il server in cui sono memorizzati i caratteri!

+0

Ho provato ad aggiungere intestazioni (vedi modificato) in .htaccess senza fortuna. Riguardo i file conf, non so come accedervi dal pannello kloxo, ho cercato ma niente.Ho anche provato l'intestazione '(Access-Control-Allow-Origin: *"); 'all'inizio del file index.php. –

+0

Mostraci una traccia della comunicazione, può essere raggiunta premendo F12 e andando in rete. Lì dovresti vedere le intestazioni se la tua configurazione è corretta. – Marged

+0

Ok, stavo abilitando l'intestazione nella cartella radice del dominio, non nella cartella radice del sottodominio ... Grazie! –

-1

Interesting gotcha:

lighttpd consente di aggiungere un'intestazione personalizzata per tutte le richieste con l'aggiunta di questo in un determinato contesto:

setenv.add-response-header = ("Access-Control-Allow-Origin" => "*") 

Per far funzionare tutto questo, è necessario attivare il mod_setenv . Ma se non si attiva questo modulo, prima di si abilita il modulo mod_status, non vedrete mai il costume intestazioni escono dalla vostra lighttpd HTTP di risposta dell'uscita intestazione