我用rails开发了一个api,在localhost中一切都很好。 但是当我的api在prod服务器上时,我的路线出错......
这是场景:
routes.rb文件:
constraints subdomain: 'api' do
scope module: 'api' do
namespace :v1 do
resources :tests, param: :name do
member do
get 'perform'
end
end
resources :jobs
end
end
end
nginx conf文件:
server {
listen 80;
server_name *.server.com.br;
# Application root, as defined previously
root rails_public_path;
try_files $uri/index.html $uri @app;
location @app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://appname;
proxy_connect_timeout 1800;
proxy_read_timeout 1800;
}}
当我在prod中运行rake routes
时,我的路线就在那里,但是独角兽会返回404页面。
答案 0 :(得分:2)
这似乎是TLD问题。它不仅适用于Unicorn。 如果您使用相同的域配置/ etc / hosts,则会收到相同的错误。
删除routes.rb中子域的约束按预期工作。
routes.rb文件:
# constraints subdomain: 'api' do
scope module: 'api' do
namespace :v1 do
resources :tests, param: :name do
member do
get 'perform'
end
end
resources :jobs
end
end
# end