为了账号安全,请及时绑定邮箱和手机立即绑定

heroku 部署后,似乎找不到我的 react 应用程序文件:GET / 404

heroku 部署后,似乎找不到我的 react 应用程序文件:GET / 404

芜湖不芜 2021-09-30 17:31:04
我分别构建了两个应用程序:一个 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 中。请记住在部署之前进行全新构建。


查看完整回答
反对 回复 2021-09-30
?
湖上湖

TA贡献2003条经验 获得超2个赞

我得到了相同的“404 找不到请求的路径”并通过从 .gitignore 中删除构建来解决它


查看完整回答
反对 回复 2021-09-30
?
慕森卡

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 应用程序是在线的...


但是,我在浏览它时遇到了几个问题。



查看完整回答
反对 回复 2021-09-30
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信