我有一个简单的Rails应用程序,其中Resque服务器安装在routes.rb
中作为
require 'resque/server'
require 'resque_scheduler'
MyApp::Application.routes.draw do
authenticate :user do
mount Resque::Server.new, :at => "/tasks"
end
...
...
在路由中安装应用程序以使用基于设计的身份验证。但是,在生产环境中,当主Rails应用程序的资产正确加载时,不会为Resque服务器加载资产。
答案 0 :(得分:2)
环顾四周后,这对我来说非常适合nginx和瘦身:
require 'resque/server'
class SecuredResqueServer < Resque::Server
set :static, true
set :root, Resque::Server.root
end
路线文件如下所示:
require 'resque/server'
require 'resque_scheduler'
require './app/secured_resque_server'
MyApp::Application.routes.draw do
...
...
authenticate :user do
mount SecuredResqueServer.new, :at => "/tasks"
end
...
...
并改变
config.action_dispatch.x_sendfile_header = "X-Sendfile"
在production.rb到
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
第三,在某些情况下,nginx配置为rails,如下所示:
server{
...
...
location ~*\.(jpeg|jpg|gif|png|ico|css|bmp|js)$ {
root /PATH_TO_APP/public;
}
...
...
}
其中 PATH_TO_APP 是应用程序根目录的路径。此类位置声明可防止从已安装的rake应用程序或引擎的任何其他位置加载资产。因此,需要删除/注释掉。
最后,请勿忘记Ctrl+F5
强制重新加载页面:)