首页 > 解决方案 > 使用快速服务器部署反应应用程序会出现空白屏幕,但该应用程序与 serve -s build 一起工作正常

问题描述

我在 localhost:8080 上运行快速服务器。API 工作正常。我在 express server 源中添加了一个名为 public 的新文件夹,并在该文件夹中添加了 react 项目源。

我添加了主页:“。” 但没有结果。该应用程序适用于从 App 根目录构建的 serve -s ,但不适用于快速服务器!


import { Router, Request, Response } from 'express';
import { V1_Router } from './v1';
import path from 'path';

export const Routes = Router();

Routes
    .use('/v1/', V1_Router)
    .get('/*', async (_req: Request, res: Response) => {
        res.sendFile(path.resolve('../public/build/index.html'));
    });

在此处输入图像描述

我检查了控制台没有错误!所有 Javascript 和 CSS 文件都已完全加载,只是由于某种原因无法运行,请帮助我...

标签: node.jsreactjsexpress

解决方案


改成这样

const express = require('express');
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, 'public', 'build', 'index.html'));
});

app.listen(process.env.PORT || 8080);

编辑1

app.use(express.static(path.join(__dirname, "..", "build")));
app.use(express.static("public"));

app.use((req, res, next) => {
  res.sendFile(path.join(__dirname, "..", "build", "index.html"));
});

推荐阅读