我正在将我的应用程序部署在ec2机器上。有一个对应于myapp.com/api的节点应用程序。一切正常。客户端应用程序基于React构建,用户可以在myapp.com上访问它。 客户端应用程序正在渲染,我能够导航到不同的路径。但是,当我刷新页面时,例如。 myapp.com/profile,它始终解析为myapp.com。
server {
listen 80;
server_name myapp.com;
root /home/ec2-user/projects/synaid/client/build;
passenger_enabled on;
index index.html;
location / {
root /home/ec2-user/projects/synaid/client/build;
try_files $uri /index.html;
}
location /api {
root /home/ec2-user/projects/synaid/server/build;
rewrite ^/api/(.*) /$1 break;
passenger_enabled on;
passenger_app_type node;
passenger_app_root /home/ec2-user/projects/synaid/server/build;
passenger_startup_file index.js;
passenger_env_var APP_ENV staging;
}
}
我正在发生的事情是,当nginx服务器收到请求时,它是从基本路径中切出url并将index.html呈现给浏览器。它也应该将url传递给应用程序,似乎并没有这样做。 一种可能的解决方案是将url从配置内部转发到应用。