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

React项目集成Bootstrap模板后浏览器无渲染问题排查

问题描述

我下载了Bootstrap模板用于项目,但在浏览器运行脚本时页面完全没有内容显示,期望在localhost能看到正常输出,以下是项目相关代码,请求排查问题。

home.jsx(内容过长已精简)
import React from "react";
import ChartistGraph from "react-chartist";
// react-bootstrap components
import {
//   Badge,
  Button,
  Card,
//   Navbar,
//   Nav,
  Table,
  Container,
  Row,
  Col,
  Form,
  OverlayTrigger,
  Tooltip,
} from "react-bootstrap";

function Dashboard() {
  return (
    <>
      <Container fluid>
        <Row>
          <Col lg="3" sm="6">
            <Card className="card-stats">
              <Card.Body>
                <Row>
                  <Col xs="5">
                    <div className="icon-big text-center icon-warning">
                      <i className="nc-icon nc-chart text-warning"></i>
                    </div>
                  </Col>
                  <Col xs="7">
                    <div className="numbers">
                      <p className="card-category">Number</p>
                      <Card.Title as="h4">150GB</Card.Title>
                    </div>
                  </Col>
                </Row>
              </Card.Body>
              <Card.Footer>
                <hr></hr>
                <div className="stats">
                  <i className="fas fa-redo mr-1"></i>
                  Update Now
                </div>
              </Card.Footer>
            </Card>
          </Col>
          <Col lg="3" sm="6">
            <Card className="card-stats">
              <Card.Body>
                <Row>
                  <Col xs="5">
                    <div className="icon-big text-center icon-warning">
                      <i className="nc-icon nc-light-3 text-success"></i>
                    </div>
                  </Col>
                  <Col xs="7">
                    <div className="numbers">
                      <p className="card-category">Revenue</p>
                      <Card.Title as="h4">$ 1,345</Card.Title>
                    </div>
                  </Col>
                </Row>
              </Card.Body>
              <Card.Footer>
                <hr></hr>
                <div className="stats">
                  <i className="far fa-calendar-alt mr-1"></i>
                  Last day
                </div>
              </Card.Footer>
            </Card>
          </Col>
          <Col lg="3" sm="6">
            <Card className="card-stats">
              <Card.Body>
                <Row>
                  <Col xs="5">
                    <div className="icon-big text-center icon-warning">
                      <i className="nc-icon nc-vector text-danger"></i>
                    </div>
                  </Col>
                  <Col xs="7">
                    <div className="numbers">
                      <p className="card-category">Errors</p>
                      <Card.Title as="h4">23</Card.Title>
                    </div>
                  </Col>
                </Row>
              </Card.Body>
              <Card.Footer>
                <hr></hr>
                <div className="stats">
                  <i className="far fa-clock-o mr-1"></i>
                  In the last hour
                </div>
              </Card.Footer>
            </Card>
          </Col>
          <Col lg="3" sm="6">
            <Card className="card-stats">
              <Card.Body>
                <Row>
                  <Col xs="5">
                    <div className="icon-big text-center icon-warning">
                      <i className="nc-icon nc-favourite-28 text-primary"></i>
                    </div>
                  </Col>
                  <Col xs="7">
                    <div className="numbers">
                      <p className="card-category">Followers</p>
                      <Card.Title as="h4">+45K</Card.Title>
                    </div>
                  </Col>
                </Row>
              </Card.Body>
              <Card.Footer>
                <hr></hr>
                <div className="stats">
                  <i className="fas fa-redo mr-1"></i>
                  Update now
                </div>
              </Card.Footer>
            </Card>
          </Col>
        </Row>
        <Row>
          <Col md="8">
            <Card>
              <Card.Header>
                <Card.Title as="h4">Users Behavior</Card.Title>
                <p className="card-category">24 Hours performance</p>
              </Card.Header>
              {/* 原代码此处截断,未闭合所有标签 */}
      </Container>
    </>
  );
}

export default Dashboard;

注:原代码存在JSX标签未闭合的语法问题,已在代码中标注。

app.js
import { Route, Routes, Navigate } from "react-router-dom";
import Home from "./home/home";
import Signup from "./Signup/Signup";
import Login from "./Login/Login";

function App() {
    // const user = localStorage.getItem("access_token");

    return (
        <Routes>
            <Route path="/signup" exact element={<Signup />} />
            <Route path="/login" exact element={<Login />} />
            <Route path="/Home" exact element={<Home/>} />
            <Route path="/" element={<Navigate replace to="/Home"/>} />
        </Routes>
    );
}

export default App;
当前异常情况

浏览器页面空白,无任何内容显示。

排查方向及解决方法
  • 修复JSX标签未闭合问题:home.jsx的return语句中,JSX代码被截断,<Card>、<Col>、<Row>、<Container>以及根片段<></>均未正确闭合,这会触发语法错误导致React无法渲染组件。需补充缺失的闭合标签,在export default Dashboard;前添加:
    </Card>
              </Col>
            </Row>
        </Container>
      </>
    );
    
  • 统一路由路径大小写:路由配置使用了/Home,部分服务器环境对URL大小写敏感,建议统一改为小写/home,同时更新Navigate的跳转路径,避免因大小写不匹配导致路由无法命中。
  • 验证组件导入路径:确认./home/home路径是否正确,home.jsx文件是否位于home目录下,文件名是否为home.jsx(部分项目需配置省略后缀规则,或需明确添加.jsx后缀)。
  • 检查依赖安装状态:执行npm install或yarn install,确保react-bootstrap、react-router-dom、react-chartist等依赖已正确安装,无版本不兼容或缺失情况。
  • 根组件包裹BrowserRouter:react-router-dom需要在根组件外层包裹<BrowserRouter>才能生效,检查index.js文件是否有如下配置:
    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import { BrowserRouter } from 'react-router-dom';
    import App from './App';
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(
      <BrowserRouter>
        <App />
      </BrowserRouter>
    );
    
    若缺失<BrowserRouter>,路由将无法正常工作,导致页面空白。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:15:12