You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用php -S启动本地PHP服务后页面图片无法显示问题求助

问题核心原因

你启动PHP内置服务时指定了index.php作为路由前端控制器,所有请求(包括对banana.jpg这类静态资源的请求)都会被转发到index.php处理,最终返回HTML页面内容而非图片二进制数据,导致图片无法正常渲染。

解决方案

方案1(适用于无自定义路由需求的常规场景,推荐)

直接去掉启动命令末尾的index.php参数即可,修改后的启动命令为:

php -S localhost:8000

该模式下PHP内置服务会优先判断请求的文件是否真实存在:如果存在静态资源则直接返回对应内容,不存在时才会触发路由规则,完全匹配你当前的项目场景。

方案2(适用于需要保留index.php作为路由控制器的场景)

在index.php文件最顶部添加静态资源判断逻辑,代码如下:

<?php
// 仅在PHP内置服务环境下生效
if (PHP_SAPI === 'cli-server') {
    $requestPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $filePath = __DIR__ . $requestPath;
    // 若请求的文件真实存在且非PHP文件,直接返回资源内容
    if (is_file($filePath) && pathinfo($filePath, PATHINFO_EXTENSION) !== 'php') {
        header("Content-Type: " . mime_content_type($filePath));
        readfile($filePath);
        exit;
    }
}
?>

添加后保持原启动命令不变即可正常加载静态资源。

内容的提问来源于stack exchange,提问作者bombkiml

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:30:01