我在用着Express
and create-react-app
.
我的 React 应用程序已经发展了很长一段时间,现在我正在尝试从 Express 服务器提供它。
// server/app.js
const express = require('express');
const path = require('path');
const app = express();
// Serve static assets
app.use(express.static(path.resolve(__dirname, '..', 'build')));
// serve main file
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, '..', 'build', 'index.html'));
});
module.exports = app;
(当我这样做时,我的构建目录被填充npm run build
.
我在 Chrome 中查看页面,加载页面时会发生什么localhost:3000
是控制台打印Uncaught SyntaxError: Unexpected Token <
,并且在 Sources 选项卡中显示我的 CSS 和 JS 文件的内容与index.html
: 就像这张图一样。
这似乎是一个可识别的问题,所以希望有人以前见过这个问题。我有点不知道从哪里开始,特别是因为我一开始实际上是从 Express 成功地提供了该应用程序。然后这种情况开始发生,然后在随机切换 git 分支并恢复和重放更改后停止,然后又开始发生。所以我什至不确定是什么导致它发生或不发生。
看来你的app.use(express.static...
调用失败,因此所有请求(包括静态资产)都由app.get('*', (req, res) => {
part.
当您打算使用它来为 React 应用程序提供服务时,我建议您从样板中获取灵感,“看看它是如何完成的”。我个人使用 NYTimes 的 kyt 项目,也有react-starter-kit。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)