javascript - create-react-app 静态站点 - 读取 JSON 文件
问题描述
我会先说我是 React 的新手,所以希望有一个我刚刚错过的简单答案。
简而言之,我想构建一个无需任何网络服务器即可运行的页面。我已经配置好了所有东西,所以我可以打开 index.html 并且它运行良好。
然而,问题是我想要一个可以在项目构建后编辑的 data.json 文件(本质上是一个配置文件),所以我不能将它粘贴到 /src 文件夹中,因为它都被捆绑了。
数据.json
{
"timeout": 10,
"threshold": 50
}
从“反应”导入反应;
const App = () => {
const path = process.env.PUBLIC_URL + '/data/data.json';
fetch(path)
.then((res) => res.text())
.then((json) => {
const data = JSON.parse(json);
})
return (
...
);
}
这在 VSCode 中运行时可能会正常工作,但在单独运行 index.html 页面时会引发 CORS 错误。我也知道我不能直接在 /public 中引用 a 文件,因为它位于 /src 文件夹之外:
import data from '../Public/data/data.json';
如何在 /Build 中有一个可以从 React 读取的可配置文件,而不会遇到 CORS 问题。
希望这个问题有意义
谢谢
解决方案
无需预先添加 PUBLIC_URL 环境变量。
这应该工作
fetch('/data/data.json')
推荐阅读
- php - Laravel 过滤结果基于 post 的查询
- javascript - 模数和余数在 Scheme 中应该如何工作?
- python - 如何修复递归倒计时 python 函数的代码,使其仅打印“LIFT OFF!” 一次?
- r - 打印出 R 控制台中的所有输出
- reactjs - 开玩笑测试失败并且没有从模拟点击接收到 toHaveBeenCalled
- javascript - 将字符串中的每个第一个字符转换为大写
- c# - 设置 VS2019 社区以对 dll 进行单元测试时出现问题
- java - 从 Firebase 检索位置并将标记放在谷歌地图上
- c# - C#如何显示垂直直方图?
- angularjs - AngularJS $http.get() 在返回 bool 的本地函数中