node.js - 使用快速服务器部署反应应用程序会出现空白屏幕,但该应用程序与 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 文件都已完全加载,只是由于某种原因无法运行,请帮助我...
解决方案
改成这样
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"));
});
推荐阅读
- iis - 从 2008 R2 升级到 2012 R2 后 IIS HTTP 错误 503
- arrays - 如何使用 PSGSUITE PS 模块添加谷歌群组?
- lisp - 有没有办法在 Common-Lisp 中不传递参数而不是传递“NIL”?
- javascript - 破坏传递给子函数的属性
- c# - 如果在网络表单中加密,如何检查 QueryString Null 值
- javascript - 有什么方法可以自动增加firebase中的字段
- javascript - 为什么我的底部子组件显示在页面顶部?
- javascript - 类中的 JavaScript 'onclick' 上下文
- javascript - 如何更改另一个跨度内按钮内的跨度颜色
- asp.net - 有条件地设置引导列宽?