gpt4 book ai didi

PHP 内置服务器托管网络字体

转载 作者:行者123 更新时间:2023-12-02 20:58:28 25 4
gpt4 key购买 nike

我正在使用 PHP 的内置 Web 服务器进行项目的本地开发,如下所示:

$ php -S localhost:8000 -t web/

web 目录中是 FontAwesome(一个图标网络字体)和一个包含正确包含和类的网页。在本地提供时字体无法正确显示。

浏览器中的“网络”开发人员选项卡显示从服务器正确加载的字体:

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

但是,当(我相信)响应 header 包含 Content-type: application/octet-streamshould be returning Content-type: application/font-woff

有没有办法使用 PHP 的内置网络服务器提供网络字体?或许添加自定义 MIME 类型?

最佳答案

来自 the docs :

如果在启动 Web 服务器时在命令行中给出了 PHP 文件,那么它将被视为“路由器”脚本。该脚本在每个 HTTP 请求开始时运行。如果此脚本返回 FALSE,则请求的资源将按原样返回。否则脚本的输出返回给浏览器。

$ php -S localhost:8000 router.php

用于添加其他 mime 类型的示例 router.php,php cli 网络服务器本身不支持,如下所示:

<?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;
}
?>

我自己的包含 Font-Awesome 的 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"]);

请记住,您不需要部署路由器脚本,它仅在本地开发时需要。

关于PHP 内置服务器托管网络字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39459311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com