Ładowanie czcionki zablokowane przez zasady udostępniania zasobów między źródłami: Brak „Kontrola dostępu - Zezwalaj na pochodzenie”

16

ten błąd występuje w Google Chrome. Myśleliśmy, że wszystko zostało skonfigurowane poprawnie. Ale może nie?

http://skin.cdn.comŁadowanie czcionki pochodzącej z źródła zostało zablokowane przez zasadę udostępniania zasobów między źródłami: Żądany zasób nie zawiera nagłówka „Kontrola dostępu - zezwól na pochodzenie”. http://domain2.comDlatego pochodzenie nie ma dostępu.

I mamy następujące w htaccess (w katalogu głównym domeny).

<IfModule mod_headers.c>    
Header add Access-Control-Allow-Origin "http://skin.cdn.com" 
</IfModule>

Pytanie: czy zapomniałem innych ustawień?

Wielkie dzięki

snh_nl
źródło

Odpowiedzi:

17

Zmień kod pliku htaccess w katalogu głównym witryny (tj. Swój plik public_html „.htaccess”)

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "http://skin.cdn.com"
    </IfModule>
</FilesMatch>

Teraz Twój CDN będzie mógł ładować twój zasób nazywając go jako twój zasób przechodzący (czcionki).

CAVEAT: Musisz WYCZYŚĆ WSZYSTKO w swojej sieci CDN, aby pliki zostały zaktualizowane za kilka minut.

Prashant Tapase
źródło
1
Twoja odpowiedź działała dla mnie bezbłędnie, ale czy mogę zapytać, dlaczego wybrałeś symbol wieloznaczny zamiast ograniczać go do określonych źródeł?
amgraham,
Ta metoda wciąż działa.
Rahul
0

Nie mam wystarczającej reputacji, aby skomentować odpowiedź @Prashant Tapase, ale Twój katalog główny nie jest Twoim Public_html. To jest podkatalog twojego katalogu głównego. i z odpowiedzi, które badałem Dyrektywa FileMatch powinna znajdować się w IfModule, jak pokazano poniżej

<IfModule mod_headers.c>
    <FilesMatch "\.(eot|otf|ttc|ttf|woff|woff2)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

Proszę mnie poprawić, jeśli to źle.
Lub możesz określić określone adresy URL / URI czcionek, tak jak wspomniał.

Również jeśli jest to CDN, powinieneś używać wersji https, a nie http, jeśli to możliwe.

Ryan Stone
źródło