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

Symfony4如何调用public目录下文件 读取yaml提示文件不存在怎么解决

问题解决方法

报错原因

你传入的是相对路径,PHP解析相对路径时默认基于当前脚本的工作目录,而非你编写代码的文件所在位置,因此会出现路径匹配失败找不到文件的问题。同时你使用了Windows系统的反斜杠\作为路径分隔符,在Linux服务器上运行时也会出现路径识别异常。

解决方法

方法1:Laravel框架适用

直接用Laravel提供的public_path()辅助函数生成public目录的绝对路径,路径分隔符统一用斜杠/:

$value = Yaml::parseFile(public_path('assets/organizations.yaml'));
return $value;

方法2:原生PHP/其他框架适用

用$_SERVER['DOCUMENT_ROOT']拼接生成public目录的绝对路径:

$filePath = $_SERVER['DOCUMENT_ROOT'] . '/assets/organizations.yaml';
$value = Yaml::parseFile($filePath);
return $value;

额外排查项

  • 确认public/assets/organizations.yaml文件真实存在,注意大小写拼写,Linux系统对文件名大小写敏感
  • 确认Web服务运行用户对该yaml文件拥有可读权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 17:36:12