2017-02-04 8 views
2

У меня есть сервер Rails, где nginx маршрутизирует / в /api, и у меня установлен rails_admin gem. Я могу получить доступ к панели администратора по адресу /api/admin, но все модели, перечисленные на странице админ-страницы, ссылаются на /admin/:model. Кажется, я не могу найти способ получить ссылки на маршрут до /api/admin/:model.Rails приложение на сервере NGINX, я хочу изменить маршруты для rails_admin gem

Я установил следующее application.rb:

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

Но ссылки администратора страницы не изменились.

Если я изменяю routes.rb иметь rails_admin под пространством имен, то проблема не решена: страница админ теперь становится api/api/admin и ссылки идут на api/admin/:model, но с маршрутами требует api/api/admin/:model вместо этого.

Как это исправить?

ответ

0

UPDATE: Этот ответ может помочь вам, если вы действительно хотите добавить /api для всего приложения rails, а не только rails_admin.

Для этого вам не нужны эти конфиги в вашем application.rb. Прочитайте этот документ: https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/

Вот пример моих конфигов:

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

P.S. вот объяснение для error_page 404 =200 /index.html; - Angular 2.0 router not working on reloading the browser