0

我有如下的定義在我的routes.rb定製路線在發展,但結果404匹配,在生產

match "/block/:name/:action" => proc { |env| 
    #heavy magic happens here 
    } 

我用它來處理細胞的渲染。我的問題是,下面的鏈接:

/block/reporting%2Fother%2Fexample/new?exampleable_id=23736&exampleable_type=Abc%3A%3ASomeType 

作品在開發模式下完全正常,但在生產中我得到「404未找到」。生產和開發網址之間的唯一區別在於開發中的使用http和生產中的使用https。我會理解,如果我寫了一個錯誤的代碼,我的proc塊,但對於上帝的愛,我不明白爲什麼它不匹配的生產環境,當它的工作完全正常的發展。

任何提示如何調試這是高度讚賞。我頭上沒有留下太多頭髮。

回答

1

即使當我最終在本地計算機上的生產環境中啓動項目時,我也會收到此錯誤。事情是我們在生產中不使用Thin。我們使用乘客。在我終於在當地獲得乘客工作後,我設法重新創建了錯誤。

原來,與乘客的:名字前面提到的路線並沒有解釋爲「報告%2Fother%2Fexample」,但也可能爲/塊/ 報告 /其它/例子/新」,其餘的不匹配的,當然。

我通過更換

match "/block/:name/:action" 

match "/block/*name/:action" 

我希望這個答案固定錯誤我自己的問題可以幫助未來的某個人。

相關問題