【发布时间】:2012-04-11 17:09:09
【问题描述】:
我知道新的 Rails 应用程序带有一个空的 favicon.ico 文件。我想知道如何添加网站图标。我知道您可以使用 favicon_link_tag 助手,但我不确定如何填充 favicon.ico 文件。你使用网站图标生成器吗?如果有,哪一个最好?
我也希望能够缓存它,rails 也会自动缓存吗?
谢谢
【问题讨论】:
标签: ruby-on-rails favicon
我知道新的 Rails 应用程序带有一个空的 favicon.ico 文件。我想知道如何添加网站图标。我知道您可以使用 favicon_link_tag 助手,但我不确定如何填充 favicon.ico 文件。你使用网站图标生成器吗?如果有,哪一个最好?
我也希望能够缓存它,rails 也会自动缓存吗?
谢谢
【问题讨论】:
标签: ruby-on-rails favicon
在 rails 6 中,只需将其放在公用文件夹中并重新加载页面。
【讨论】:
我将文件放入/public/favicon.ico 时遇到问题,我正在使用AWS EBS.
我可以改正错误。
对我来说更好的解决方案是将文件放入/app/assets/images/favicon.ico 并使用= favicon_link_tag 'favicon.ico'
【讨论】:
只需将其添加到布局的 <head></head> 部分:
<%= favicon_link_tag 'favicon.ico' %>
如果您正在使用资产管道,请将 favicon.ico 图像放入 /app/assets/images/,如果您不使用,请将其放入 /public/images/。
此外,如果将 Ruby 2.0 与 Rails 3.0.20(可能还有 3.0.x)一起使用,则会出现一个错误,在尝试渲染 favicon.ico 时会引发异常。
解决方法是将以下代码放入 application_controller.rb:
config.relative_url_root = ""
【讨论】:
要为所有平台(不仅仅是桌面浏览器)生成网站图标,您可以使用RealFaviconGenerator 和 rails_real_favicon gem:
rails_real_favicon gem 给你Gemfile
favicon.json 的新文件。该文件描述了您刚刚设计的图标。rails generate favicon 以实际创建图标和 HTML 代码。render 'favicon' 以在您的页面中插入 HTML 代码。此解决方案的优势在于它在资产管道中注入了网站图标文件(favicon.ico、apple-touch-icon.png,还有browserconfig.xml 和manifest.json)。
完全披露:我是 RealFaviconGenerator 的作者。
【讨论】:
我发现对我有用的解决方案是执行以下操作:
?v=version 选项来帮助解决浏览器缓存问题。这对我有帮助。public 和 app/assets/images。您只需要一个,但如果您不知道是哪一个,复制到这两个地方并没有什么坏处……或者您可以尝试看看哪一个有效 - 利用?v=version 执行您的测试。
<head></head> 部分添加以下行:<%= favicon_link_tag 'favicon.ico' %>
希望这提供了一个简单的食谱。我敢肯定,如果我遗漏了什么,有人可以并且会改进这个答案。
【讨论】:
多年来一直没有这样做,但 Gimp 能够保存具有不同大小的多个图像的 .ico 文件。 您只需要导出为带有一些可见图层的 .ico 格式。
【讨论】:
写入application.html.haml:
= favicon_link_tag '/images/favicon.ico'
将文件 favicon.ico 放在目录中:
project/public/images
【讨论】:
例如在此处生成您的网站图标:http://www.favicon.cc/ 并放入 public/ 目录
更新 公共文件夹中的 Favicon 未预编译,可能会被缓存很长时间。 看起来最好使用favicon_link_tag 来避免图标更新问题。我不知道浏览器在根目录中需要 favicon。根据favicon wiki所有现代浏览器维护
<link rel="shortcut icon" href="favicon path" /> (favicon_link_tag)
【讨论】:
www.website.com 时可以看到图标,但是当我转到website.com 时,它没有显示?
虽然所有这些答案都说要创建 16x16 图标,但现实情况是您应该同时创建 16x16 和 32x32,以支持视网膜显示器。没有一个在线生成器在这方面做得很好。
在 Mac 上,有一个很棒的应用程序,名为 Icon Slate,它可以让您轻松地在一个 ICO 文件中创建两种格式。
在 Windows 上,我使用 Axialis IconWorkshop 取得了巨大成功,但它是一个更重的工具,而且价格要贵得多,约为 50 欧元。
两者都会创建一个包含 16x16 和 32x32 图像的 ico 文件。
如果您使用资产管道,请使用 app/assets/images 文件夹而不是 /public。忽略link 标签的边缘浏览器的数量正在迅速接近于零,因此跳过箍来适应它们是不值得的。
正如其他答案中提到的,在head 中使用它来显示它:
<%= favicon_link_tag 'favicon.ico' %>
【讨论】:
我强烈推荐这个选项。它易于使用且免费 http://converticon.com
【讨论】:
我尝试了上面的链接,但服务使用起来不是很简单。我在另一个网站上找到了这个链接,它完美地复制了我的 .png 文件,而且使用起来非常简单。我想我也会分享这个链接,因为我认为这是一项更好的服务。
【讨论】:
您几乎需要一个名为 favicon.ico 的 16x16 像素图像文件,并且它必须在您网站的根目录中公开可用。
您始终可以使用主要的图像编辑器将您的徽标或其他图像转换为 .ico 格式。有像 Gimp 这样的免费选项,可以根据现有图像制作出比在线图标生成器更好的图标。
【讨论】: