Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nginx, passenger only showing root page, all other routes fail

Nginx + passenger is only showing the root page / path, all other routes fail with 404 Not Found. I know nginx and passenger must be running to correctly bring up the root path. Here's the entry for sites-available:

    server {
      listen 80;
      server_name staging.redacted.com; # Replace this with your site's domain.

      passenger_enabled on;
      passenger_app_env staging;

      keepalive_timeout 300;

      client_max_body_size 4G;

      root /var/www/staging.redacted.com/current/public; # Set this to the public folder location of your Rails application.

      #try_files $uri/index.html $uri.html $uri;
      try_files $uri $uri/ =404;

    }

routes.rb - even though they all work and pass their specs.

    Rails.application.routes.draw do

      resources :users

      resources :brand_api_keys

      resources :ir_service_buckets
      resources :ir_service_images
      resources :ir_services do
        resources :ir_service_buckets do
          resources :ir_service_images
        end
      end
      resources :devices do
        resources :scans
      end
      resources :images do
        resources :scans
      end
      resources :campaigns do
        resources :images
      end
      resources :agent_brands
      resources :brands do
        resources :brand_api_keys
        resources :ir_service_buckets do
          resources :ir_service_images
        end
        resources :agent_brands
        resources :campaigns
      end
      resources :agents do
        resources :brand_api_keys
        resources :agent_brands
      end

      root 'agents#index'
    end
like image 387
TomDunning Avatar asked Feb 14 '15 22:02

TomDunning


1 Answers

Try removing try_files $uri $uri/ =404; Remove or comment out the try_files line completely and it will work.

like image 78
Dmitry Verhoturov Avatar answered Sep 27 '22 18:09

Dmitry Verhoturov