当你问Rails处理路由时,已经太晚了。如果您要求rails来处理路线,它会通过返回404错误或500页错误。
如果您希望路由被另一个应用程序处理,它将需要由您的网络服务器(nginx
或apache
或您正在使用的那一个)拦截。在他们的配置中,您只需将该路由重定向到其他应用程序,并将其他路径重定向到Rails应用程序。
编辑
你有另一种选择,就是你的请求转发到不同的服务器。
您添加像
get 'faye/*query' => 'faye#get'
post 'faye/*params' => 'faye#post'
路线然后控制器
require 'faraday'
class FayeController < ApplicationController
APP = 'http://mydomain.com:9292'
def get
request_page :get
end
def post
request_page :post
end
private
def request_page(method)
conn = Faraday.new(:url => APP)
query = params.delete(:query)
response = conn.send method, query, params
render text: response.body.gsub(APP, 'mydomain.com/faye')
end
end
将使用法拉第加载从其他应用程序的信息。
_ignore_是什么意思?你想把它路由到别的地方吗?它应该返回404吗?什么? –
@MichaelBerkowski当我访问mydomain.com/blog时,它不应该由博客控制器或我的应用程序中的任何其他资源处理,/ blog是指向外部应用程序的链接。 – user2821877
更好地说,我使用faye在我的应用程序中有实时通知,没有localhost faye在端口9292上运行 - 'localhost:9292/faye',都在开发模式中很好,但是在生产中应该指向'mydomain.com/ faye',在生产环境中没有端口号,并且加载faye.js返回错误'not found', – user2821877