2013-03-28 73 views
25

我曾嘗試使用的ActionController :: RoutingError(無路由匹配[GET] 「/favicon.ico」)在Rails中

<link href="/favicon.ico" rel="shortcut icon" /> 

以及本

<link href="/assets/favicon.ico" rel="shortcut icon" /> 

但我仍然公共文件夾中的日誌文件

ActionController::RoutingError (No route matches [GET] "/favicon.ico"): 

的favicon.ico的看到這個錯誤在那裏(我也把它在app/assets文件夾太)

如何解決此錯誤?

+0

嘗試將favicon.ico添加到Web服務器的根目錄中,然後重試。 – Vinay

回答

41

由於您的應用程序的public/目錄中沒有favicon.ico,所以出現此錯誤。由於該文件不存在,Rails繼續前進,尋找匹配中的/favicon.ico的路徑。

您可以通過以下兩種方式之一

  1. 解決這個手動將favicon.ico文件中public/目錄應用程序。
  2. favicon.icoapp/assets/images/,然後改變你的<link ...標籤使用image_path

    <link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" /> 
    

    這將放置在favicon.icopublic/assets/favicon.ico在文檔根。

我建議用#上述1粘連。


至於爲什麼這一要求甚至顯示在你的日誌了,許多現代瀏覽器看在域的根/favicon.ico使用的書籤,或呈現在標籤或地址欄。這就是爲什麼最好將favicon.ico放在域名的根目錄下,以防萬一瀏覽器決定(無論出於何種原因)忽略你的<link rel="icon shortcut" ...標籤。

+0

我必須同時做#1和#2。我正在使用favicon_link_tag幫手。 –

5

這是Rails的默認情況下application.html.erb產生:

<%= favicon_link_tag 'favicon.ico', :rel => 'shortcut icon' %> 

它沒有找到的favicon.ico這種方式時,它的下/公共

它正常工作(發現圖標.ICO下/公共)如果你改變了標籤:

<%= favicon_link_tag %> 
1

favicon.ico在我的公用文件夾是行不通的,所以我結合一些其他的答案,以COM採用這種簡單的工作方法。

複製的favicon_link_tag輸出和注入image_path像這樣:

<link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" type="image/vnd.microsoft.icon" /> 

現在把favicon.icoassets/images文件夾,你設置。

0

favicon.ico的應用程序/資產/圖像/,然後在佈局文件中添加

<link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" /> 

這適用於我。

相關問題