猿问

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

我分别构建了两个应用程序:一个 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-web


https://github.com/titoih/a-api


PD:我正在使用 AntDesign。


芜湖不芜
浏览 189回答 3
3回答

红糖糍粑

我在 server.js 中用这段代码调试了它app.use(express.static(path.join(__dirname, '/client/build')))app.get('*', function(req, res) {&nbsp; res.sendFile(path.join(__dirname, '/client/build', 'index.html'))})我从客户端文件夹中的 .gitignore 中删除了构建文件夹。当您在默认构建文件夹中使用 create react app 时,在 .gitignore 中。请记住在部署之前进行全新构建。

湖上湖

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

慕森卡

最后,我这样做了:app.use(express.static(path.join(__dirname, 'public')));app.get('*', function(req, res) {&nbsp; res.sendFile(path.join(__dirname, 'public', 'index.html'));});幸运的是,heroku 应用程序是在线的...但是,我在浏览它时遇到了几个问题。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答