我在我的Rails應用程序中設置了一個Exception notifier。所以,今天我拿到了第二個通知,該index
模板丟失:在導軌應用程序中產生奇怪的「Missing template」異常
An ActionView::MissingTemplate occurred in products#index:
Missing template products/index, application/index with {:locale=>[:en, :de], :formats=>["text/html;text/plain"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :slim, :arb, :jbuilder]}. Searched in:
* "/home/releases/20160518143810/app/views"
-------------------------------
Request:
-------------------------------
* URL : http://example.com/shop
* HTTP Method: GET
* IP address : xx.xx.xx.xx
* Parameters : {"controller"=>"products", "action"=>"index"}
* Timestamp : 2016-06-07 08:19:13 +0200
* Server : vintage-shop.ch
* Rails root : /home/releases/20160518143810
* Process: 15714
我知道一個事實,即該產品的指數模板是那裏的服務器上,並在VCS檢入和應用程序已經運行了現在一個月。所以我真的想知道,爲什麼會發生這種情況:
$ ls /home/releases/20160518143810/app/views/products/index.html.slim
# -> /home/releases/20160518143810/app/views/products/index.html.slim
這種情況怎麼樣?
更新:我查了一下IP地址,它不是我期望我的客戶來自的地區。所以我想知道這是否是某種攻擊,但問題仍然是如何觸發異常,即使模板存在。
是的,這正是我的想法。如果我能看到,當服務器請求發生時,實際的rails記錄日誌可以更加自信地告訴我們。因爲該日誌非常詳細,以回答視圖渲染問題。 –
感謝您的詳細信息。 Accept頭部實際上是分號分隔的。有沒有辦法使軌道回落到HTML,而不是拋出異常? – Besi
我不知道有關回退到HTML,但你應該至少能夠使用['rescue_from'](http://stackoverflow.com/a/14566690/1544012)顯示404 not_found頁面或類似的東西。無論如何,這是一個客戶端錯誤,所以我認爲在這種情況下顯示錯誤頁面是正確的。不過要注意的是,使用這種方法,您將永遠不會得到更多Missing模板異常,即使這實際上會成爲您代碼中的實際問題。 – BoraMa