當你問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