Application Rails sur le serveur NGINX, je souhaite modifier les itinéraires pour rails_admin gem

J’ai un serveur Rails où nginx achemine / to /api , et j’ai rails_admin gem installé. Je peux accéder au panneau d’administration sur /api/admin , mais tous les modèles répertoriés sur la page d’administration sont liés à /admin/:model . Je ne peux pas sembler trouver un moyen d’obtenir les liens vers /api/admin/:model place.

J’ai défini ce qui suit dans application.rb :

 config.relative_url_root = "/api" config.action_controller.relative_url_root = "/api" ENV['RAILS_RELATIVE_URL_ROOT'] = "/api" ENV['ROOT_URL'] = "/api" 

Mais les liens de la page d’administration n’ont pas changé.

Si je change routes.rb pour avoir rails_admin sous un espace de nommage, le problème n’est pas résolu: la page admin devient api/api/admin et les liens vont à api/admin/:model , mais avec les routes il faut api/api/admin/:model place.

Comment puis-je réparer cela?

MISE À JOUR: Cette réponse peut vous aider si vous voulez réellement append /api pour l’application rails entiers, pas seulement rails_admin.

Vous n’avez pas besoin de ces configurations dans votre application.rb pour cela. Lisez ce document: https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/

Voici l’exemple de mes configs:

 server { listen 80 default_server; server_name www.mydomain.com; root /var/www/AppName/current/client/dist; error_page 404 =200 /index.html; location ~ ^/api(/.*|$) { alias /var/www/AppName/current/public$1; # <-- be sure to point to 'public'! passenger_base_uri /api; passenger_app_root /var/www/AppName/current; passenger_document_root /var/www/AppName/current/public; passenger_enabled on; passenger_app_env production; } } 

PS voici l'explication de error_page 404 =200 /index.html; - Le routeur Angular 2.0 ne fonctionne pas sur le rechargement du navigateur