【发布时间】:2021-05-20 19:48:42
【问题描述】:
我已经使用 nginx 和 Elastic Beanstalk 建立了一个 Express 和 React 网站。它在浏览网站时工作正常,但如果我在主路由以外的路线上刷新,或者尝试输入主路由以外的特定路由,则会导致 404。
我找到了很多与更改 nginx.config 相关的不同解决方案,并且认为我只差一步了。这是我目前的nginx.config:
server {
listen 80;
server_name leaftherapyeb-env.eba-xyc63u32.eu-west-2.elasticbeanstalk.com www.leaftherapyeb-env.eba-xyc63u32.eu-west-2.elasticbeanstalk.com;
root /var/www/leaftherapyeb-env.eba-xyc63u32.eu-west-2.elasticbeanstalk.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
我已经看到很多建议使用root /usr/share/nginx/html; 的解决方案,但是当我使用它而不是每个页面上方的根链接到 nginx index.html 时。所以我改为尝试将根目录作为域的路径,我认为我错了,但不知道如何计算路径,目前在包括主路由在内的每条路由上都会导致 500 内部错误。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
你的 react 源代码在哪里?
-
嗨,我的意思是,你如何构建你的 React 应用程序,即 yarn build,你将生成的 dist 文件夹放在哪里?您应该将您的 nginx 根目录指向 dist 文件夹
-
我认为你应该保留根
root /var/www/html;,而不是使用服务器名称作为根文件夹 -
所以我做了
npm run build,它在客户端文件夹中创建了一个构建文件夹。我早些时候试图链接到它,但我认为我没有走对路。会不会只是/var/client/build?
标签: reactjs express nginx amazon-elastic-beanstalk