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

React项目部署至FTP服务器出现Minified React error #299问题求助

解决React createRoot(...): Target container is not a DOM element 错误

常见原因及修复方案

1. 检查HTML文件中是否存在id="root"的元素

确保项目入口HTML文件(通常是public/index.html)里存在带id="root"的容器节点,示例代码:

<div id="root"></div>

如果该节点不存在则直接添加;如果id拼写错误(比如写成Root或root-box),修正为root即可。

2. 确保JS代码在DOM加载完成后执行

若React初始化代码在DOM元素渲染前就运行,会导致找不到目标容器,可通过两种方式修复:

  • 方式一:调整script标签位置
    将引入React入口文件的<script>标签放在</body>标签之前,保证DOM优先加载:
<body>
  <div id="root"></div>
  <script src="index.js"></script>
</body>
  • 方式二:用DOM加载事件包裹初始化代码
    在index.js中使用DOMContentLoaded事件包裹React初始化逻辑:
document.addEventListener('DOMContentLoaded', () => {
  const root = ReactDOM.createRoot(document.getElementById('root'));
  root.render(<App />);
});

3. 验证FTP上传的文件完整性

确认上传至FTP服务器的文件包含完整的build(或dist)目录,尤其是index.html文件没有遗漏或损坏。可重新上传整个构建产物目录,确保所有静态文件传输完整。

4. 排查路由/SSR配置问题(复杂应用场景)

如果应用使用服务端渲染(SSR)或前端路由,需确认服务器配置正确,所有路由请求都返回包含root元素的HTML文件,而非404错误页面。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:27:34