2016-09-12 1 views
1
내가 사용

PHP에 내장 된 프로젝트의 지역 개발, 그래서 같은위한 웹 서버 : web 디렉토리 내부PHP 내장 된 서버 호스팅 웹 글꼴

$ php -S localhost:8000 -t web/ 

가 FontAwesome (아이콘 webfont)이며, 정확한 포함과 클래스가있는 웹 페이지. 로컬로 제공되면 글꼴이 올바르게 표시되지 않습니다.

(내가 믿는) 때 응답 헤더가 Content-type: application/octet-stream을 포함하지만
200 GET http://localhost:8000/fonts/fontawesome-webfont.woff2?v=4.6.3 

들이 should be returningContent-type: application/font-woff

인가 :

는 브라우저에서 '네트워크'개발자 탭 글꼴이 제대로 서버에서로드 보여줍니다 거기에 PHP의 내장 웹 서버와 웹 글꼴을 제공하는 방법? 아마도 사용자 지정 MIME 형식을 추가할까요? the docs에서

답변

1

:

PHP 파일은 웹 서버가가 "라우터"스크립트로 처리됩니다 시작 명령 행에 제공됩니다. 이 스크립트는 각 HTTP 요청이 시작될 때 실행됩니다. 이 스크립트가 FALSE를 반환하면 요청 된 리소스는있는 그대로 반환됩니다. 그렇지 않으면 스크립트의 출력이 브라우저로 리턴됩니다. 기본적으로 PHP를 CLI 웹 서버에서 지원하지 않는 추가 마임 유형을 추가

$ php -S localhost:8000 router.php 

샘플 router.php은 다음과 같습니다

<?php 
// router.php 
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]); 
if ($path["extension"] == "el") { 
    header("Content-Type: text/x-script.elisp"); 
    readfile($_SERVER["SCRIPT_FILENAME"]); 
} else { 
    return FALSE; 
} 
?> 

이 같은 폰트 - 멋진 외모를 포함한에서 내 자신의 router.php 파일 :

<?php 
// router.php 
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]); 
switch ($path["extension"]) { 
    case "ttf": 
     header("Content-Type: application/x-font-ttf"); 
     break; 
    case "woff": 
     header("Content-Type: application/x-font-woff"); 
     break; 
    case "woff2": 
     header("Content-Type: font/woff2"); 
     break; 
    default: 
     return FALSE; 
} 
readfile($_SERVER["SCRIPT_FILENAME"]); 

라우터 스크립트를 배포 할 필요가 없으므로 로컬 개발에만 필요합니다.