Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routes /favicon.ico附加到Rails 4路线_Routes_Ruby On Rails 4 - Fatal编程技术网

Routes /favicon.ico附加到Rails 4路线

Routes /favicon.ico附加到Rails 4路线,routes,ruby-on-rails-4,Routes,Ruby On Rails 4,这是一个奇怪的。我今天启动了一个新的Rails 4应用程序,然后创建了一个名为transfer_functions的资源。当我点击像localhost:3000/transfer_functions/1这样的url时,它会在它的末尾附加/favicon.ico,我在服务器控制台中得到这个错误 ActionController::RoutingError (No route matches [GET] "/transfer_functions/1/favicon.ico"):

这是一个奇怪的。我今天启动了一个新的Rails 4应用程序,然后创建了一个名为transfer_functions的资源。当我点击像localhost:3000/transfer_functions/1这样的url时,它会在它的末尾附加/favicon.ico,我在服务器控制台中得到这个错误

ActionController::RoutingError (No route matches [GET] "/transfer_functions/1/favicon.ico"):
有什么想法吗?谢谢

该应用程序正在使用“TurboLink”gem

更新: 我正在使用Twitter引导并使用相应的生成器创建应用程序布局。我从application.html.haml文件中删除了这一行,它解决了这个问题

%link(href="favicon.ico" rel="shortcut icon")

我不确定我是否理解为什么会出现问题。

出现错误的原因是,您删除的行实际上是“在当前目录中查找favicon.ico”。您发布的haml代码呈现为类似于
的html。要在Rails 4应用程序中使用
favicon.ico
文件,请在布局中使用
favicon\u link\u标记

通常在
application.html.slim
中:

DOCTYPE html
html
  head
    = favicon_link_tag
您还需要在
app/assets/images
文件夹中有一个名为
favicon.ico
的文件


:

返回加载favicon文件的链接。您可以指定不同的名称 第一个参数中的文件。助手接受附加选项 可以覆盖“rel”和“type”的哈希

选择权

:rel-指定此链接的关系,默认为“快捷方式图标”

:type-覆盖自动生成的mime类型,默认为 'image/vnd.microsoft.icon'


我们经常在日志中看到404请求favicon的“旧版本”。在每一个新版本(以及每一个新的预编译版本)上,都会生成一个带有唯一哈希的新favicon文件。在有人存储favicon的情况下,这似乎会中断,例如,在他/她的iOS主屏幕上放置指向您站点的快捷方式:图标丢失并显示一个中断的图标符号。因此,我们放弃了
favicon\u link\u标签
/asset pipeline方法,通过简单地包括以下内容,恢复到存储在
public
文件夹中的favicon:

<link href="favicon.ico">
<link href="favicon_ios.png" rel="apple-touch-icon" type="image/png">

这导致了一个问题,因为favicon通常位于您的_webapp/app/assets/images/中。
%link{:href => 'favicon.ico'}
%link{:href => 'favicon_ios.png', :rel => 'apple-touch-icon', :type => 'image/png'}