2012-03-05 54 views
5

當一個谷歌機器人試圖訪問我的一個控制器時,我收到了這個錯誤消息。ActionView :: MissingTemplate:Missing template

ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views" 

問題是我無法重現它。 該錯誤發生了上週的121次(根據airbrake)。

Here是回溯。

行18,這是所提到的只是行存在於我的應用程序,這是代碼的super部分

def render(options = {}, extra_options = {}, &block) 
    if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax] 
    options[:layout] = false 
    end 
    super(options, extra_options, &block) 
end 

控制器方法channels#show看起來像這樣

def show 
    @channel = # ... 
    @today  = # ... 
    @yesterday = # ... 
    @tomorrow = # ... 
end 

訪問URL提出了谷歌機器人的錯誤不會爲我提出一個錯誤。

唯一失敗的網址是包含特殊字符如{"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}的網址。 ORIGINAL_FULLPATH值設置爲/channels/25-j%c3%b6nk%c3%b6ping

我正在使用rails 3.2.1。

+0

它打的是哪個網址?嘗試在開發過程中自己進入該URL。另外,請檢查HTTP引用來查看它來自哪個頁面。 – nicholaides 2012-03-05 04:07:48

+0

@nicholaides我已經試着訪問有問題的網址,這是有效的。 – Oleander 2012-03-05 13:01:56

+0

這個應用程序的實時URL是什麼? – 2012-03-25 15:23:52

回答

2

我在Rails 3應用程序中看到了這個錯誤,並且一直在關注複製錯誤。日誌有Missing Template錯誤,但是當我手動嘗試請求時,它工作正常。

我懷疑來自Google的HTTP請求沒有設置Rails正在正確處理的MIME。我發現粗解決方法是刪除視圖模板啞劇,所以

example/index.html.erb 

現在

example/index.erb 

這會停止丟失模板錯誤,因爲模板將被用於所有的默劇。

+0

你救了我幾個小時! – 2017-05-28 02:51:18

相關問題