刷新或键入的URL返回404 React - Router v4 - Node - nginx

时间:2018-06-13 05:08:51

标签: node.js reactjs nginx server http-status-code-404

我知道当有人在谈论我的问题时有一个帖子,我不知道我做错了还是我有一个不同的问题,这是Stackoverflow Post我认为不是愚蠢的,请在将其标记为重复的问题之前,我会解释一下我做错了什么。1

首先,当我在root上加载网站时,一切正常,然后我点击Link重定向到例如Login一切正常,但刷新页面时返回简单{{1没有样式且没有控制台错误

基本上,我有React for Front-end和Node for Back-end(只是一个API),项目文件夹结构很简单

404 Not Found

在服务器上(DigitalOcean - Ubuntu 16),我有以下配置的nginx

/                                 (root where Node Api lives)
/client                           (where React lives)
/someFoldersForNode               (libs, models, dbConfig)

}

这是我的server { listen 80; server_name SERVERIP; location / { proxy_pass http://SERVERIP:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }

App.js

我在<Router> <div> <Header /> <Switch> <Route exact path={"/Login"} component={Login} /> <Route exact path={"/Register"} component={Register} /> <Route component={NotFound} /> </Switch> <Footer /> </div> </Router> 上尝试了这个:

server.js

但是当React向正在侦听端口:4000的API发出http请求时,它被重定向到我的app.get("/*", function(req, res) { res.sendFile(path.join(__dirname, "client/build/index.html"), function(err) { if (err) { res.status(500).send(err); } }); }); 并且显然会返回错误,因为每次API获取http请求时都会尝试重定向。 / p>

我读到了同构,但我需要解决“快速”和“在服务器端渲染”这可能是我现在无法做出的选择,或者我愚蠢地理解这台ATM。

0 个答案:

没有答案