
React 项目中的 src/ 目录仅用于开发,构建后不会保留;若需通过 PHP 读取 JSON 数据,应先将 JSON 文件显式复制到 build/ 输出目录,并通过文件系统路径或 HTTP URL 访问。
react 项目中的 `src/` 目录仅用于开发,构建后不会保留;若需通过 php 读取 json 数据,应先将 json 文件显式复制到 `build/` 输出目录,并通过文件系统路径或 http url 访问。
在 React 应用中,src/ 下的 data.json 是源码的一部分,不会自动出现在生产环境的 build/ 目录中——Webpack 默认只打包被 JavaScript 显式 import 或 require 的资源。因此,直接在 PHP 中尝试访问 ./src/data.json(如 file_get_contents('src/data.json'))在生产环境中必然失败,且存在安全风险(暴露源码结构)。
✅ 正确做法:将 JSON 文件作为静态资源纳入构建流程
使用 Webpack 的 CopyWebpackPlugin,在构建时将 src/data.json 复制到 build/ 目录下(例如 build/data.json):
// webpack.config.js(如使用自定义配置)或 react-app-rewired / craco 配置中添加
const CopyPlugin = require("copy-webpack-plugin");
module.exports = {
plugins: [
new CopyPlugin({
patterns: [
{ from: "src/data.json", to: "data.json" }
]
})
]
};
⚠️ 注意:若使用 Create React App(CRA)默认配置,需通过 craco 或 react-app-rewired 扩展 Webpack 配置;否则可将 JSON 文件直接放入 public/ 目录(如 public/data.json),它会自动被拷贝至 build/ 根目录,无需插件。
✅ PHP 端安全读取方式
假设 JSON 已发布为 build/data.json,且 PHP 与前端部署在同一服务器(如 Nginx/Apache 的 DocumentRoot 下),推荐两种方式:
-
通过文件系统路径读取(推荐,高效且不依赖网络)
wechat-article-extraction-mp-weixin-qq-com news-webpage-cleaning blog-post-parsing metadata-extraction-title-author-date multiple-output-formats-markdown-json-plain-text batch-processing-support下载基于三引擎设计,从微信文章、新闻和博客网页提取干净内容,支持标题作者日期元数据,多格式和批量处理。
<?php $jsonPath = __DIR__ . '/../build/data.json'; // 调整为实际 build 目录绝对路径 if (file_exists($jsonPath)) { $jsonContent = file_get_contents($jsonPath); $data = json_decode($jsonContent, true); if (json_last_error() === JSON_ERROR_NONE) { echo "Success: " . count($data) . " items loaded."; } else { throw new Exception('Invalid JSON format'); } } else { throw new Exception('data.json not found in build directory'); } ?> -
通过 HTTP URL 读取(适用于跨服务或 CDN 场景)
<?php $url = 'https://your-domain.com/data.json'; // 确保该 URL 可公开访问且 CORS 不影响 PHP(服务端请求无 CORS 限制) $jsonContent = file_get_contents($url); $data = json_decode($jsonContent, true); ?>
? 关键注意事项:
- ❌ 切勿在 PHP 中尝试访问 src/ 目录——它不应存在于生产服务器;
- ✅ 始终校验 file_exists() 和 json_last_error(),避免因文件缺失或格式错误导致空响应或崩溃;
- ? 若 JSON 含敏感数据,请勿放入 public/ 或 build/;应改由后端 API 动态提供,并做好身份验证与权限控制;
- ? 构建前确认 data.json 已被正确复制:检查 build/ 目录是否存在该文件,且内容可被浏览器直接访问(如 https://yoursite.com/data.json 返回有效 JSON)。
综上,核心原则是:让 JSON 成为构建产物的一部分,而非源码残留。通过标准化的资源拷贝 + 健壮的 PHP 解析逻辑,即可实现 React 与 PHP 之间的可靠数据协同。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










