javascript - AWS "Cannot GET/"

标签 javascript node.js reactjs amazon-web-services deployment

当我尝试访问我的 MERN 应用程序的根路径 ("/") 时,会发生此错误。虽然在本地机器上访问这个路径工作正常,但我得到了 React 应用程序。 React 应用程序使用 3000 端口,但服务器使用 8080。我使用这个样板构建了我的应用程序:https://github.com/crsandeep/simple-react-full-stack/ (只需更改“client”、“server”和“public”目录中的文件,并更改“webpack.config.js”中客户端的路径)

我还尝试用路由器(在客户端的“index.js”中)覆盖我应用程序的主要组件,如下所示:

<Router>
  <Route exact path="/" component={MessageBoard} />
</Router>

但我仍然得到错误。什么问题?

UPD:server.js 的内容是:

const express = require("express");
const logger = require("morgan");

const API_PORT = process.env.PORT || 8080;
const app = express();
const router = require('./routers/board');

app.use(logger("dev"));

app.use('/api', router);

app.listen(API_PORT, () => {
  console.log(`LISTENING ON PORT ${API_PORT}`)
});

UPD 1:“/etc/nginx/sites-available/default”的内容:

server {
  listen 80;
  server_name ec2-18-222-203-253.us-east-2.compute.amazonaws.com www.ec2-18-222-203-253.us-east-2$
  location / {
    proxy_pass http://127.0.0.1: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;
    proxy_redirect off;
  }
}

最佳答案

看起来您的应用没有监听“/”路径...

您监听的唯一路径是“/api”并使用路由器。

如果你想得到'/',试着听'/'

app.get('/',(req,res)=>{
    //do something
});

或者,我注意到在您的代表中,有一个 app.use(express.static('dist'));,如果您使用react,也许您应该检查“dist”的路径应用程序或其他东西在“dist”文件夹中。

关于javascript - AWS "Cannot GET/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118195/

相关文章:

javascript - 使用 underscore.js 按年份过滤

javascript - 在 HTML 中为不同设备分辨率更改字体大小的最佳方法

javascript - NodeJS 中的依赖注入(inject)模式

reactjs - 使用来自单独组件的值更新 Formik initialValues

javascript - 用javascript匹配回文中的单个字符?

javascript - setEndpoint 不起作用?

mongodb - Mongoose + Everyauth 奇怪的行为

javascript - MongoDB Cloud9 连接

javascript - 如何连接字符串并向其添加 html 标签?

reactjs - TypeError : compiler. 插件不是 ReactLoadablePlugin.apply 的函数