NGINX服务器上的Rails应用程序,我想更改rails_admin gem

时间:2017-02-04 06:29:39

标签: ruby-on-rails nginx rails-admin

我有一个Rails服务器,其中nginx路由//api,我安装了rails_admin gem。我可以访问/api/admin的管理面板,但管理页面上列出的所有型号都链接到/admin/:model。我似乎无法找到一种方法来获取路由到/api/admin/:model的链接。

我在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代替。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

更新:如果你真的想为整个rails应用添加/api,这个答案可能对您有帮助,而不仅仅是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