我分别构建了两个应用程序:一个 React 应用程序客户端和 API rest with node 和 express在遵循许多教程之后,我总是发现一些问题。看起来我在两个应用程序之间都没有连接,它似乎不是我的代码中的 index.html 文件。我的package.json 中有这个 "scripts": { "start": "react-app-rewired start", "build-dev": "dotenv -e .env.development react-app-rewired build", "build-prod": "dotenv -e .env.production react-app-rewired build", "build": "react-app-rewired build", "test": "react-app-rewired test --env=jsdom", "eject": "react-app-rewired eject" }我做了 npm run build 并将这些文件复制到我的 API(服务器端)中的 public/ 文件夹我已经将app.js 中的这一行更改为:app.use(express.static(path.join(__dirname, 'public/index.html')));在我的 api(服务器端)的公共文件夹中,我粘贴了来自 npm run build(客户端应用程序)的所有内容,甚至是 index.html。该文件的完整内容是:<!doctype html><html><head><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/><script src="https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script><script>"addEventListener"in document&&document.addEventListener("DOMContentLoaded",function(){FastClick.attach(document.body)},!1),window.Promise||document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"><\/script>')</script><title>A-Web</title><link href="/static/css/2.393a28fb.chunk.css" rel="stylesheet"><link href="/static/css/main.969b3049.chunk.css" rel="stylesheet"></head><body><div id="root">当我打开 heroku 时,控制台显示我:Failed to load resource: the server responded with a status of 404 (Not Found){message: "Not Found"}我只需要上传到 heroku 即可获得生产环境。似乎一切都是正确的,我尝试了很多教程,但对我来说没有任何效果。我的github:https://github.com/titoih/a-webhttps://github.com/titoih/a-apiPD:我正在使用 AntDesign。
3 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
我在 server.js 中用这段代码调试了它
app.use(express.static(path.join(__dirname, '/client/build')))
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, '/client/build', 'index.html'))
})
我从客户端文件夹中的 .gitignore 中删除了构建文件夹。当您在默认构建文件夹中使用 create react app 时,在 .gitignore 中。请记住在部署之前进行全新构建。
慕森卡
TA贡献1806条经验 获得超8个赞
最后,我这样做了:
app.use(express.static(path.join(__dirname, 'public')));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
幸运的是,heroku 应用程序是在线的...
但是,我在浏览它时遇到了几个问题。
添加回答
举报
0/150
提交
取消