@ font-face가 woff 파일에서 404 오류를 발생시키는 이유는 무엇입니까?


422

내가 사용하고 @font-face내 회사의 사이트에 그것은 큰 / 외모를 작동합니다. Firefox와 Chrome을 제외하고 .woff파일 에서 404 오류가 발생 합니다. IE는 오류를 발생시키지 않습니다. 루트에 글꼴이 있지만 CSS 폴더의 글꼴로 시도하고 글꼴의 전체 URL을 제공했습니다. 내 CSS 파일에서 해당 글꼴을 제거하면 404가 없으므로 구문 오류가 아닙니다.

또한 fontsquirrels 도구를 사용하여 @font-face글꼴과 코드 를 작성했습니다 .

@font-face {
  font-family: 'LaurenCBrownRegular';
  src: url('/laurencb-webfont.eot');
  src: local('☺'), 
    url('/laurencb-webfont.woff') format('woff'), 
    url('/laurencb-webfont.ttf') format('truetype'), 
    url('/laurencb-webfont.svg#webfontaaFhOfws') format('svg');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'FontinSansRegular';
  src: url('/fontin_sans_r_45b-webfont.eot');
  src: local('☺'), 
    url('/fontin_sans_r_45b-webfont.woff') format('woff'), 
    url('/fontin_sans_r_45b-webfont.ttf') format('truetype'), 
    url('/fontin_sans_r_45b-webfont.svg#webfontKJHTwWCi') format('svg');
  font-weight: normal;
  font-style: normal;
}

파이어 폭스와 크롬에 어떤 버전이 있습니까? Gecko 1.9.2 (Firefox 3.6)는 WOFF를 지원합니다.
Sotiris

OTF를 Woff로 다시 변환하십시오. 비슷한 문제가 있었고 파일 구문 분석이 손상되었습니다. 다른 유형의 글꼴로 변환하기에 좋은 사이트입니다. onlinefontconverter.com
stacksonstacksonstacks

답변:


722

Chrome에서 woff 파일에 404와 동일한 증상이 발생했으며 IIS 6이 설치된 Windows Server에서 응용 프로그램을 실행 중이었습니다.

동일한 상황에있는 경우 다음을 수행하여 해결할 수 있습니다.

해결책 1

"IIS 관리자 (웹 사이트 속성의 HTTP 헤더 탭)를 통해 다음 MIME 형식 선언을 추가하기 만하면됩니다. .woff application / x-woff "

업데이트 : 에 따라 WOFF 폰트에 대한 MIME 유형Grsmto 실제 MIME 타입이다 (적어도 크롬) 응용 프로그램 / X-글꼴 WOFF. x-woff는 Chrome 404를 수정하고 x-font-woff는 Chrome 경고를 수정합니다.

2017 년 기준 : Woff 글꼴은 이제 RFC8081 사양의 일부로 MIME 유형 font/woff및 으로 표준화되었습니다 font/woff2.

IIS 6 MIME 유형

Seb Duggan 덕분에 : http://sebduggan.com/posts/serving-web-fonts-from-iis

해결책 2

웹 설정 에서 MIME 유형을 추가 할 수도 있습니다 .

  <system.webServer>
    <staticContent>
      <remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
      <mimeMap fileExtension=".woff" mimeType="font/woff" />
    </staticContent>    
  </system.webServer>

5
Cannot add duplicate collection entry of type ‘mimeMap’ with unique key attribute ‘fileExtension’...applicationhost.config 파일과의 충돌로 인해 오류가 발생할 수 있습니다. <remove fileExtension=".woff" />web.config 파일에서 새 mimeMap을 지정하기 직전 에 추가 하여 잘못된 복제본을 제거하여이 문제를 해결할 수 있습니다 .
Pete

11
MIME 형식은로 표준화되었습니다 application/font-woff.
Fernando Correia

5
이 트릭을했다! 같은 문제가 있지만 .woff2 파일을 사용하는 경우 해당 확장자를 가진 다른 MIME 유형 (또는 구성)을 추가하십시오
mapache

2
사양이 다시 변경된 것 같습니다. 에 대한 귀하의 조언을 application/x-font-woff기준으로, 유효 기간이 지금 RFC 8081 올바른 MIME 형식 지금 font/woff하고 font/woff2. 링크 된 질문에서 업데이트 된 답변 보기
Liam

3
이 솔루션은 저에게 효과적이지 않았습니다. 나를 위해 속임수는 : hotcakescommerce.zendesk.com/hc/en-us/articles/…
Kim Lage

53

이 게시물에 대한 답변은 매우 도움이되었으며 시간을 크게 절약했습니다. 그러나을 사용할 때 아래에 표시된 것처럼 확장 유형에 FontAwesome 4.50대한 추가 구성을 추가해야한다는 것을 알았습니다. woff2그렇지 않으면 woff2유형 요청 이 Chrome의 개발자 도구에서 콘솔> 오류에 404 오류가 발생했습니다.

S.Serp의 의견에 따르면 아래 구성은 <system.webServer>태그 안에 있어야합니다 .

<staticContent>
  <remove fileExtension=".woff" />
  <!-- In case IIS already has this mime type -->
  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
  <remove fileExtension=".woff2" />
  <!-- In case IIS already has this mime type -->
  <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />
</staticContent>

3
당신의 상술 태그는 <staticContent>안에 있어야 <system.webServer>태그
S.Serpooshan

Windows Server 2012 r2, ASP.Net MVC5에서 완벽하게 작동합니다.
Cromwell

44

실제로 @Ian 로빈슨의 대답은 잘 작동하지만 크롬은 그 메시지와 함께 불평을 계속 : " 자원 글꼴로 해석하지만, MIME 유형 application / x-WOFF로 전송 "

당신이 그것을 얻는다면, 당신은에서 변경할 수 있습니다

응용 프로그램 / x-woff

응용 프로그램 / x -font -woff

더 이상 Chrome 콘솔 오류가 없습니다!

(Chrome 17에서 테스트)


이 부분은 어디에서 바꾸나요? 브라우저 나 서버에서?
Jake Wilson

위의 답변에서 설명한 바와 같이 서버 여야합니다. 이 솔루션은 IIS 6이 설치된 Windows Server를위한 것입니다.
adriendenat

1
크롬은 여전히 ​​x-font-woff에 대해 불평하고 있습니다
Sonic Soul

내 의견 을 다시 언급 하려면 : 사양이 (다시) 변경된 것처럼 보입니다. 에 대한 귀하의 조언을 application/x-font-woff기준으로, 유효 기간이 지금 RFC 8081 올바른 MIME 형식 지금 font/woff하고 font/woff2. 연결된 질문에서 업데이트 된 답변 보기
Liam

15

IIS7 솔루션

나는 또한 같은 문제를 겪었다. 모든 웹 사이트에 적용되므로 서버 수준 에서이 구성을 수행하는 것이 좋습니다.

  1. IIS 루트 노드로 이동 하여 "MIME 유형"구성 옵션을 두 번 클릭하십시오.

  2. 오른쪽 상단의 액션 패널에서 "추가"링크를 클릭하십시오.

  3. 대화 상자가 나타납니다. .woff 파일 확장자를 추가하고 "application / x-font-woff"를 해당 MIME 유형으로 지정하십시오.

.woff 파일 이름 확장자를위한 MIME 유형 추가

MIME 유형으로 이동

MIME 유형 추가

다음은 IIS 7의 문제를 해결하기 위해 수행 한 작업입니다.


2
참고 것을 링크 전용 답변 낙심 , SO 응답 솔루션 (대 아직 시간이 지남에 따라 부패하는 경향 참조의 다른 경유지)에 대한 검색의 엔드 포인트이어야한다. 링크를 참조로 유지하면서 여기에 독립형 시놉시스를 추가하십시오.
kleopatra

@kleopatra-세부 사항으로 답변을 업데이트하고 링크를 제거했습니다.
Dhanuka777

"모든 웹 사이트에 적용되므로 서버 수준에서이 구성을 수행하는 것이 더 좋습니다." 글쎄, 그건 정말 달려있다. 여러 내부 앱을 실행하는 회사 서버를 다루는 경우에는 그렇습니다. 반면에 여러 서버에 분산되어있는 공개 웹 사이트를 실행하는 경우 "일관성"이라는 측면에서 web.config 메소드가 우선합니다 (즉, 웹 서버에서 구성하는 것을 잊을 수는 없습니다) 섬기는 사람).
Balázs

10

Ian의 답변 외에도 요청 필터링 모듈의 글꼴 확장이 작동하도록 허용해야했습니다.

<system.webServer>
  <staticContent>
    <remove fileExtension=".woff" />
    <remove fileExtension=".woff2" />
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
    <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
  </staticContent>
  <security>
      <requestFiltering>
          <fileExtensions>
              <add fileExtension=".woff" allowed="true" />
              <add fileExtension=".ttf" allowed="true" />
              <add fileExtension=".woff2" allowed="true" />
          </fileExtensions>
      </requestFiltering>
  </security>    
</system.webServer>

8

IIS 서버 관리자 실행 (run 명령 : inetmgr) Mime 유형을 열고 다음을 추가하십시오.

파일 이름 확장자 : .woff

MIME 유형 : 응용 프로그램 / 옥텟 스트림


1

권한, MIME 유형 등을 둘러싼 많은 것들을 시도했지만 결국 web.config가 IIS에서 정적 파일 처리기를 제거한 다음 정적 파일이있는 디렉토리에 대해 다시 명시 적으로 추가했습니다. 디렉토리에 위치 노드를 추가하고 핸들러를 다시 추가하자마자 요청에 404가 표시되지 않습니다.


1

IIS7에서 CodeIgniter를 사용하는 경우 :

web.config 파일 에서 패턴woff 를 추가하십시오.

<rule name="Rewrite CI Index">
  <match url=".*" />
    <conditions>
      <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|woff" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php/{R:0}" />
 </rule>

그것이 도움이되기를 바랍니다!


0

이것은 명백 할 수도 있지만 404 번으로 여러 번 나에게 트립되었습니다 ... fonts 폴더 권한이 올바르게 설정되어 있는지 확인하십시오.



0

웹 서버 구성에 액세스 할 수없는 경우 글꼴 파일의 이름을 svg로 끝내도록 형식을 바꿀 수도 있습니다 (그러나 형식은 유지). Chrome 및 Firefox에서 제대로 작동합니다.


0

MIME 유형을 추가 한 후에도 여전히 작동하지 않으면 사이트의 인증 섹션에서 "익명 인증"이 활성화되어 있는지 확인하고 지정된 스크린 샷에 따라 "응용 프로그램 풀 ID"를 선택하십시오.

여기에 이미지 설명을 입력하십시오



-1

그것을 해결 :

Mo'Bulletproofer 방법 을 사용해야 했습니다


더 이상 WOFF를 사용하지 않습니까? 웹 서버가 WOFF 파일을 제공하도록 올바르게 구성되어 있지 않을 수 있습니까? 예를 들면 다음과 같습니다. stackoverflow.com/questions/3594823/mime-type-for-woff-fonts/…
mercator

다른 컴퓨터에서 인코딩으로 글꼴을 테스트했습니다. 잘 표시되고 404 오류가 없습니다.
dcp3450

그것은 나를 못하게합니다. 인코딩이 길다. 여기에 설명되어 있습니다 : paulirish.com/2010/font-face-gotchas
dcp3450

1
답변의 링크가 더 이상 존재하지 않습니다.
Munim Munna
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.