2016-09-12 20 views
1
私が使用している

PHPの組み込みプロジェクトの現地開発、これ等のためのWebサーバー:webディレクトリ内PHP組み込みのサーバーホスティングウェブフォント

$ php -S localhost:8000 -t web/ 

はFontAwesome(アイコンwebfont)で、正しいインクルードとクラスを持つWebページ。ローカルで提供されている場合、フォントが正しく表示されません。ブラウザで

「ネットワーク」開発]タブでは、フォントが正しく、サーバーからのロードを示しています。

200 GET http://localhost:8000/fonts/fontawesome-webfont.woff2?v=4.6.3 

レスポンスヘッダは

があるときに(私は信じている)彼らはshould be returningContent-type: application/font-woffなどContent-type: application/octet-streamが含ましかし、 PHPの組み込みWebサーバーでWebフォントを提供する方法はありますか?おそらくカスタムMIMEタイプを追加していますか? the docsから

答えて

1

PHPファイルは、Webサーバーは、それが「ルーター」のスクリプトとして扱われ開始され、コマンドラインで指定された場合。スクリプトは、各HTTP要求の開始時に実行されます。このスクリプトがFALSEを返すと、要求されたリソースはそのまま返されます。それ以外の場合は、スクリプトの出力がブラウザに返されます。このようなフォント、素晴らしいルックスを含むから

<?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のCLI、Webサーバでサポートされていない追加のMIMEタイプを追加するための

$ php -S localhost:8000 router.php 

サンプル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"]); 

ルータースクリプトを展開する必要はなく、ローカル開発にのみ必要です。

関連する問題