我无法使用 npm run dev 在端口 5173 或 5174 上显示我的页面

问题描述 投票:0回答:1

npm run dev。端口 5173 上绝对没有显示任何内容 (http://www.localhost:5173)

它显示“错误 404”,而我的 jsx 应该显示

我的路线均未显示。不管是path=/还是其他

我尝试了几种解决方案都没有成功

我的后端服务器仍然可以工作。当我在终端上输入“node app.js”时,确实有“欢迎来到主页!”显示在端口 3000

另一方面,我不知道如何链接我的前端和后端。但这又是另一个问题。我的主要问题是,当我在终端中输入“npm run dev”并在网络浏览器上启动端口时,它给我“错误 404”

我首先认为这是因为我的防火墙不允许端口 5173。我试过了,还是不行

然后我认为它需要一个带有有效密钥的 openssl 证书。所以我下载了openssl,在我的代码中实现它并用路径修改了环境变量。没有成功

这是我的 React.js 应用程序中的文件结构:

前端

后端

这是我的 package.json 以及已安装的库:

开始

休息

这是我的 main.jsx:

// src/main.jsx
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import { BrowserRouter as Router } from "react-router-dom";
import { ThemeProvider } from "@mui/material/styles";
import theme from "./theme"; // Assure-toi que ce chemin est correct
import "./App.css";

// Création du root pour React 18+
const root = ReactDOM.createRoot(document.getElementById("root"));

root.render(
  <React.StrictMode>
    <ThemeProvider theme={theme}>
      <Router>
        <App />
      </Router>
    </ThemeProvider>
  </React.StrictMode>
);

这是我的 app.jsx 以及我的所有路线:

import React, { useState, useEffect } from "react";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
import { ThemeProvider } from "@mui/material/styles";
import theme from "./theme";
import Login from "./components/Login";
import Register from "./components/Register";
import Dashboard from "./components/Dashboard";
import Navbar from "./components/Navbar";
import jwt_decode from "jwt-decode";
import "./App.css"; // Correction du chemin
import Profile from "./Profile";
import Tasks from "./Tasks";
import Auth from "./Auth";
import { API_URL, TOKEN_KEY } from "./constants";
import axios from "axios";

function App() {
  const [token, setToken] = useState(localStorage.getItem(TOKEN_KEY) || null);
  const [userId, setUserId] = useState(null);

  useEffect(() => {
    if (token) {
      const decoded = jwt_decode(token);
      setUserId(decoded.id);
    }
  }, [token]);

  useEffect(() => {
    // Code à exécuter lorsque le DOM est complètement chargé
    console.log("DOM complètement chargé");
  }, []);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await axios.get(`${API_URL}/endpoint`);
        console.log(response.data);
      } catch (error) {
        console.error("Erreur lors de la récupération des données :", error);
      }
    };

    fetchData();
  }, []);

  return (
    <ThemeProvider theme={theme}>
      <Router>
        <Navbar />
        <div className="container">
          <header className="header">Défis Informatique</header>
          <Routes>
            {!token ? (
              <>
                <Route
                  path="/login"
                  element={<Login setToken={setToken} setUserId={setUserId} />}
                />
                <Route
                  path="/register"
                  element={
                    <Register setToken={setToken} setUserId={setUserId} />
                  }
                />
              </>
            ) : (
              <>
                <Route
                  path="/"
                  element={<Dashboard token={token} userId={userId} />}
                />
                <Route path="/profile" element={<Profile userId={userId} />} />
                <Route path="/tasks" element={<Tasks userId={userId} />} />
                <Route path="/auth" element={<Auth token={token} />} />
              </>
            )}
          </Routes>
        </div>
      </Router>
    </ThemeProvider>
  );
}

export default App;

这是我的index.html,其中包含我的src/main.jsx和导入的src/App.css(我尝试了几种可能的路径):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>React App</title>
</head>
<body>
  <div id="root"></div>
  <link rel="stylesheet" href="/src/App.css">
  <script type="module" src="/src/main.jsx"></script>
</body>
</html>

我还以为是因为我的vite.config.js。它看起来是这样的:

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

export default defineConfig({
  plugins: [react()],
  server: {
    host: "0.0.0.0",
    port: 5173,
  },
});

如果您需要调试,这也是我后端的 app.js::

const express = require("express");
const app = express();
const userRoutes = require("./routes/users");
const taskRoutes = require("./routes/tasks");
const fs = require("fs");
const https = require("https");

app.use(express.json());

// Routes pour les utilisateurs et les tâches
app.use("/api/users", userRoutes);
app.use("/api/tasks", taskRoutes);

// Route pour la racine
app.get("/", (req, res) => {
  res.send("Bienvenue sur la page d'accueil !");
});

// Démarrer le serveur
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Serveur démarré sur le port ${PORT}`);
});

// Chemins vers les fichiers de certificat et de clé privée
const pathToPrivateKey =
  "D:/Documents/Téléchargements/OpenSSL-Win64/bin/private.key";
const pathToCertificate =
  "D:/Documents/Téléchargements/OpenSSL-Win64/bin/certificate.crt";

// Vérifiez si les fichiers existent
if (fs.existsSync(pathToPrivateKey) && fs.existsSync(pathToCertificate)) {
  const privateKey = fs.readFileSync(pathToPrivateKey, "utf8");
  const certificate = fs.readFileSync(pathToCertificate, "utf8");
  const credentials = { key: privateKey, cert: certificate };

  // Créer un serveur HTTPS
  const httpsServer = https.createServer(credentials, app);

  // Démarrer le serveur sur un port sécurisé (443 ou autre)
  httpsServer.listen(443, () => {
    console.log("HTTPS Server running on port 443");
  });
} else {
  console.error(
    "Les fichiers de certificat ou de clé privée sont introuvables."
  );
}

我的问题是 localhost:5173 中没有显示任何内容(它给了我“错误 404”),并且控制台或终端中也没有显示任何内容

reactjs vite
1个回答
0
投票

在前端,您正在使用 vite 并且您的

index.html
文件位于
public
目录中。在邀请中你不能这样做。您的
index.html
文件应位于项目的 ROOT 目录中。请参阅这个问题

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.