这是一个奇怪的问题。我今天启动了一个新的 Rails 4 应用程序,然后创建了一个名为 transfer_functions 的资源。当我点击像 localhost:3000/transfer_functions/1 这样的网址时,它会将/favicon.ico 附加到它的末尾,我在服务器控制台中收到此错误。
ActionController::RoutingError (No route matches [GET] "/transfer_functions/1/favicon.ico"):
有任何想法吗?谢谢!该应用程序正在使用“turbolinks” gem。
更新:
我正在使用 Twitter Bootstrap 并使用相应的生成器创建应用程序布局。我从我的 application.html.haml 文件中删除了这一行,它解决了这个问题。
%link(href="favicon.ico" rel="shortcut icon")
不知道我明白为什么这会导致问题。
最佳答案
出现错误的原因是因为您删除的行实际上是在说“在当前目录中查找 favicon.ico”。你发布的那个haml代码渲染成html,看起来像<link href="favicon.ico..."
.
你应该处理一个图标的方式是这样的:
your_webapp/app/assets/images/
your_webapp/app/views/layouts/application.html.haml
并在文档标题下添加以下内容:= favicon_link_tag
Rails 将使用 Assets 管道来为网站图标提供服务,就像任何其他站点 Assets 一样。您只需要文件名,不需要在 url 中包含图像文件夹。
如果您对文档感兴趣:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-favicon_link_tag
您还可以添加任何您需要的内容到
rel
关于routes -/favicon.ico 被附加到 Rails 4 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308321/