Ruby on rails 当配置相对url根目录时,重新设置web链接会断开

Ruby on rails 当配置相对url根目录时,重新设置web链接会断开,ruby-on-rails,ruby,resque,rails-activejob,Ruby On Rails,Ruby,Resque,Rails Activejob,我在staging/prod环境中使用for应用程序部署到子目录。我最近开始使用for active jobs,并实现了一个用于查看resque作业队列的前端。当用户点击链接时,resque web主页上的所有链接都不遵守相对url路径 config.action_controller.relative_url_root = /metric 当我们点击resque网站上的working jobs链接时。它呈现的是/resque_web/working,而不是/metric/resque_web

我在staging/prod环境中使用for应用程序部署到子目录。我最近开始使用for active jobs,并实现了一个用于查看resque作业队列的前端。当用户点击链接时,resque web主页上的所有链接都不遵守相对url路径

config.action_controller.relative_url_root = /metric
当我们点击resque网站上的working jobs链接时。它呈现的是
/resque_web/working
,而不是
/metric/resque_web/working
,这会导致链接中断

有什么想法吗?

对我有用的是:

  • config/routes.rb
    中装载ResqueWeb,如下所示:

    require "resque_web"
    Rails.application.routes.draw do
      mount ResqueWeb::Engine => "/resque/"
      root 'resque_web/overview#show'
    end
    
  • config/application.rb
    中设置相对URL根目录:

    config.relative_url_root = '/resque'
    
  • 更新Nginx配置如下

    location ~ ^/resque/(.*|$) {         
         alias /home/ravi/ws/ror/resque-web/public$1; 
         passenger_app_root /home/ravi/ws/ror/resque-web;
         passenger_document_root /home/ravi/ws/ror/resque-web/public;
         passenger_enabled on;
         passenger_app_env development;
     }
    
  • resque仪表板上的每个链接都以前缀/resque生成,例如
    /resque/workers
    指向工作人员列表,即
    resque\u web/workers\index

    我的rake routes输出是:

    Prefix Verb URI Pattern Controller#Action
    resque_web      /resque     ResqueWeb::Engine
          root GET  /           resque_web/overview#show
    
    Routes for ResqueWeb::Plugins::ResqueScheduler::Engine:
              schedules GET    /schedule(.:format)                     resque_web/plugins/resque_scheduler/schedules#index
                requeue POST   /schedule/requeue(.:format)             resque_web/plugins/resque_scheduler/schedules#requeue
    requeue_with_params POST   /schedule/requeue_with_params(.:format) resque_web/plugins/resque_scheduler/schedules#requeue_with_params
               schedule DELETE /schedule(.:format)                     resque_web/plugins/resque_scheduler/schedules#destroy
                delayed GET    /delayed(.:format)                      resque_web/plugins/resque_scheduler/delayed#index
      delayed_job_class GET    /delayed/jobs/:klass(.:format)          resque_web/plugins/resque_scheduler/delayed#jobs_klass
         delayed_search POST   /delayed/search(.:format)               resque_web/plugins/resque_scheduler/delayed#search
              timestamp GET    /delayed/:timestamp(.:format)           resque_web/plugins/resque_scheduler/delayed#timestamp
              queue_now POST   /delayed/queue_now(.:format)            resque_web/plugins/resque_scheduler/delayed#queue_now
             cancel_now POST   /delayed/cancel_now(.:format)           resque_web/plugins/resque_scheduler/delayed#cancel_now
                  clear POST   /delayed/clear(.:format)                resque_web/plugins/resque_scheduler/delayed#clear
    
    Routes for ResqueWeb::Engine:
    resque_web_plugins_resque_scheduler        /scheduler                      ResqueWeb::Plugins::ResqueScheduler::Engine
                               overview GET    /overview(.:format)             resque_web/overview#show
                          working_index GET    /working(.:format)              resque_web/working#index
                            clear_queue PUT    /queues/:id/clear(.:format)     resque_web/queues#clear {:id=>/[^\/]+/}
                                 queues GET    /queues(.:format)               resque_web/queues#index
                                  queue GET    /queues/:id(.:format)           resque_web/queues#show {:id=>/[^\/]+/}
                                        DELETE /queues/:id(.:format)           resque_web/queues#destroy {:id=>/[^\/]+/}
                                workers GET    /workers(.:format)              resque_web/workers#index
                                 worker GET    /workers/:id(.:format)          resque_web/workers#show {:id=>/[^\/]+/}
                          retry_failure PUT    /failures/:id/retry(.:format)   resque_web/failures#retry
                     retry_all_failures PUT    /failures/retry_all(.:format)   resque_web/failures#retry_all
                   destroy_all_failures DELETE /failures/destroy_all(.:format) resque_web/failures#destroy_all
                               failures GET    /failures(.:format)             resque_web/failures#index
                                failure GET    /failures/:id(.:format)         resque_web/failures#show
                                        DELETE /failures/:id(.:format)         resque_web/failures#destroy
                                  stats GET    /stats(.:format)                resque_web/stats#index
                           stats_resque GET    /stats/resque(.:format)         resque_web/stats#resque
                            stats_redis GET    /stats/redis(.:format)          resque_web/stats#redis
                             stats_keys GET    /stats/keys(.:format)           resque_web/stats#keys
                         keys_statistic GET    /stats/keys/:id(.:format)       resque_web/stats#keys {:id=>/[^\/]+/}
                                   root GET    /                               resque_web/overview#show
    

    你找到解决办法了吗?