使用history api的ember.js / rails / passenger的nginx配置

时间:2015-03-18 21:19:27

标签: ember.js nginx passenger

我有一个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 /部分或我应该改变什么?

1 个答案:

答案 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;
  }

}