我有一个nginx配置,无论用户去哪个URL,都能正确提供index.html。例如,如果用户访问:myapp.example.com/foo/bar,则nginx正确地为index.html提供服务,以便ember.js可以处理/ foo / bar路由。
但我还需要nginx将以/ api开头的url移交给我的rails应用程序。这是我当前的配置:
server {
listen 80;
server_name myapp.example.com;
root /home/app/myapp/current/public;
passenger_enabled on;
passenger_user app;
passenger_ruby /usr/bin/ruby2.2;
location /api/ {
}
location / {
try_files $uri $uri/ /index.html?/$request_uri;
}
}
当ember.js发出任何API请求时,服务器(nginx,而不是rails)返回404。我应该将什么放入位置/ api /部分或我应该改变什么?
答案 0 :(得分:0)
将乘客选项移动到位置/ api部分似乎有效,如下所示:
server {
listen 80;
server_name myapp.example.com;
root /home/app/myapp/current/public;
location /api/ {
passenger_enabled on;
passenger_user app;
passenger_ruby /usr/bin/ruby2.2;
}
location / {
try_files $uri $uri/ /index.html?/$request_uri;
}
}