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

Docker环境下Apache部署PHP站点仅显示文本无法加载CSS、JS资源

问题排查结论

根本原因

site.php未被正常引入,该文件中定义的HTML头部(包含CSS引用、基础页面结构)完全没有输出,浏览器无法识别完整的HTML文档结构,因此不会主动加载页面后续的CSS、JS等静态资源,也不会产生对应的加载/报错日志。

具体排查方向

  • 检查Apache自定义配置的DocumentRoot路径
    Dockerfile中复制的deploy/apache/default.conf如果DocumentRoot参数值不是/var/www/html,$_SERVER['DOCUMENT_ROOT']会返回配置的其他路径,导致$_SERVER['DOCUMENT_ROOT']."/site.php"指向的路径下不存在对应文件,引入失败。
    可在PHP代码中加入<?php echo $_SERVER['DOCUMENT_ROOT']; ?>打印该值,确认是否和站点文件实际存放的/var/www/html路径一致。

  • 开启PHP错误显示验证引入状态
    默认关闭前端错误输出的配置会掩盖文件引入错误,可在代码开头临时加入以下配置,即可直观看到是否存在文件引入报错:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>

如果出现Warning: include(xxx/site.php): failed to open stream: No such file or directory类报错,即可直接确认是路径匹配问题。

  • 替换为更稳定的文件引入写法
    避免依赖$_SERVER['DOCUMENT_ROOT']这类受服务端配置影响的变量,改用基于当前文件路径的写法引入,兼容性更高:
include __DIR__ . '/site.php';
include __DIR__ . '/inc/functions.php';

粘贴内容正常的原因

直接粘贴site.php内容后,无需走文件引入逻辑,文件内的HTML头部、CSS引用等内容会正常输出,浏览器识别到完整HTML结构后就会正常加载后续静态资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:04