当我刷新索引路由(/
)和登录页面(/login
)上的页面时,它工作正常。
但是,当我在其他路线上刷新时,我的网站出现错误,例如/user/123456
.
因为无论请求是什么,浏览器总是获取 HTML 文件。
因此,和中的内容main.css
都是main.js
HTML,以及浏览器错误。
我已经阅读了 create-react-app 的 README。
无论我使用serve package( $serve -s build -p 80
)还是express,都会产生奇怪的bug。
以下是我的服务器代码:
//server.js
const express = require('express');
const path = require('path');
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const PORT = process.env.PORT || 80;
app.listen(PORT, () => {
console.log(`Production Express server running at localhost:${PORT}`);
});
编辑:我已经弄清楚问题出在哪里。
我创建了一个新项目,并将其与我的进行了比较。新项目中静态文件的路径是绝对的,但在我的项目中是相对的。
结果,我"homepage": "."
在package.json
.
//package.json
{ ....
dependencies:{....},
....,
- "homepage": "."
}
现在一切都按预期工作。我怎么这么不小心...