我知道新的Rails应用程序附带一个空的favicon.ico文件。我想知道如何添加收藏夹图标。我知道您可以使用该favicon_link_tag
帮助程序,但是我不确定如何填充favicon.ico文件。您是否使用网站图标生成器?如果是这样,哪个最好?
我还希望能够对其进行缓存,rails是否也可以自动进行缓存?
谢谢
Answers:
例如,在此处生成您的网站图标:http : //www.favicon.cc/ 并放入public /目录
UPDATE 公用文件夹中的Favicon尚未预编译,因此可能会缓存很长时间。看起来最好使用favicon_link_tag以避免favicon更新问题。我不知道浏览器需要root的favicon。根据Favicon Wiki,所有现代浏览器都维护
<link rel="shortcut icon" href="favicon path" /> (favicon_link_tag)
www.website.com
,但是当我转到时website.com
,它不显示吗?
只需将其添加到<head></head>
布局部分:
<%= favicon_link_tag 'favicon.ico' %>
/app/assets/images/
如果您正在使用资产管道,则将favicon.ico图像放入;如果不使用,则将favicon.ico图像放入/public/images/
。
另外,如果将Ruby 2.0与Rails 3.0.20(可能还有3.0.x)一起使用,则会出现一个错误,该错误会在尝试渲染favicon.ico时引发异常。
解决方法是将以下代码放入application_controller.rb中:
config.relative_url_root = ""
虽然所有这些答案都说明要创建一个16x16的图标,但实际上是您应该同时创建一个16x16和32x32的图形,以便支持视网膜显示。没有一个在线生成器在此方面做得很好。
在Mac上,有一个功能出色的5美元应用程序,名为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文件中,并且非常易于使用。我认为我也将共享此链接,因为我认为这是一种更好的服务。
要为所有平台(不仅是桌面浏览器)生成图标,可以使用RealFaviconGenerator和rails_real_favicon gem:
rails_real_favicon
向您添加宝石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>
在app / views / layouts文件(例如,application.html.erb)的布局部分中添加以下行:<%= favicon_link_tag 'favicon.ico' %>
希望这提供了一个简单的食谱。我敢肯定,如果我错过了任何事情,那么有人会并且会在这个答案上有所改善。