교차 원본 리소스 공유 정책에 의해 글꼴이로드되지 않도록 차단 : '액세스 제어 허용 원본 없음'


16

Chrome에서이 오류가 발생했습니다. 모든 것이 올바르게 설정되었다고 생각했습니다. 그러나 어쩌면?

원본 간 글꼴 http://skin.cdn.com이 교차 원본 리소스 공유 정책에 의해로드되지 않도록 차단되었습니다. 요청 된 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다. http://domain2.com따라서 원점 에 액세스 할 수 없습니다.

그리고 우리는 htaccess (도메인 루트)에 다음을 가지고 있습니다.

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

질문 : 다른 설정을 잊었습니까?

많은 감사

답변:


17

웹 사이트 루트 디렉토리에서 htaccess 파일 코드를 변경하십시오 (예 : 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>

이제 CDN은 당신의 리소스 (글꼴)를 호출하는 리소스를로드 할 수 있습니다.

주의 사항 : CDN에있는 모든 항목을 제거해야 파일이 몇 분 안에 업데이트됩니다.


1
귀하의 답변은 완벽하게 작동했지만 특정 출처로 제한하지 않고 와일드 카드를 선택한 이유를 물어볼 수 있습니까?
amgraham

이 방법은 여전히 ​​작동합니다.
Rahul

0

@Prashant Tapase의 답변에 대해 언급 할만 큼 평판이 좋지 않지만 루트 디렉토리는 Public_html이 아닙니다. 이것은 루트 디렉토리의 하위 디렉토리입니다. & 내가 연구 한 답변에서 FileMatch 지시문은 아래 표시된 것처럼 IfModule 안에 있어야합니다.

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

이것이 틀렸다면 정정 해주세요.
또는 언급 한대로 특정 URL / URI 글꼴을 지정할 수 있습니다.

또한 CDN 인 경우 가능하면 http가 아닌 https 버전을 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.