gpt4 book ai didi

javascript - Express 仅提供静态文件

转载 作者:行者123 更新时间:2023-11-28 03:42:10 24 4
gpt4 key购买 nike

我正在使用 React 和 Express 构建一个应用程序,并希望路由主要通过 Express 而不是 React-router。

在我构建了 React 应用程序并将 Express 设置为从构建文件夹提供静态文件后,每个路径都仅通向 React 应用程序。例如,当访问 localhost:3000/test 时,我仍然只得到 React 应用程序,而不是“testing”。

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

app.use(express.static(path.join(__dirname, './client/build')));

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

app.get('/test', function (req, res) {
res.send("testing");
});

app.listen(3000);

最佳答案

您很可能不想要这样的结果,因为您希望将服务器端路由暴露给客户端,并且处理 SPA 文件的路由作为应用程序内的最后一个路由。但这段代码对你有用。

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

app.use(express.static(path.join(__dirname, './client/build')));

app.get('*', function (req, res) {
const file = fs.createReadStream(path.join(__dirname, '/client/build', 'index.html'));
return file.pipe(res);
});

app.get('/test', function (req, res) {
res.send("testing");
});

app.listen(3000);

我希望这会有所帮助,编码愉快!

关于javascript - Express 仅提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48847156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com