【问题标题】:How to add favicon in rails 3.2如何在 Rails 3.2 中添加网站图标
【发布时间】:2012-04-11 17:09:09
【问题描述】:

我知道新的 Rails 应用程序带有一个空的 favicon.ico 文件。我想知道如何添加网站图标。我知道您可以使用 favicon_link_tag 助手,但我不确定如何填充 favicon.ico 文件。你使用网站图标生成器吗?如果有,哪一个最好?

我也希望能够缓存它,rails 也会自动缓存吗?

谢谢

【问题讨论】:

标签: ruby-on-rails favicon


【解决方案1】:

在 rails 6 中,只需将其放在公用文件夹中并重新加载页面。

【讨论】:

    【解决方案2】:

    我将文件放入/public/favicon.ico 时遇到问题,我正在使用AWS EBS.

    我可以改正错误。

    对我来说更好的解决方案是将文件放入/app/assets/images/favicon.ico 并使用= favicon_link_tag 'favicon.ico'

    【讨论】:

      【解决方案3】:

      只需将其添加到布局的 <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 = ""
      

      【讨论】:

      • 我喜欢这个解决方案。我搜索这个问题是因为我想在 dev/stage/prod 选项卡的 favicon 中放置明确的标识符,这就是我所需要的!
      • hmm...我只是对这个错误有最奇怪的表达,只是在我的公共目录中有 favicon.ico (在开发和 heroku 上运行良好)没有工作并且奇怪地试图看在“myhostname.com/favicon.ico”会给我 nginx 欢迎屏幕(你刚刚安装了 nginx 的那个,不知道为什么,这就是我发布这个的原因,因为它对我来说非常奇怪)然后一旦我添加了 favicon_link_tag 一切都很好,favicon 就会出现并直接查看它是否有效。所有这一切都来自一个完美的应用程序。
      【解决方案4】:

      要为所有平台(不仅仅是桌面浏览器)生成网站图标,您可以使用RealFaviconGenerator 和 rails_real_favicon gem:

      • 转到RealFaviconGenerator 并提交您的图片。您可以根据平台制作图标和平台:iOS、Android 等。
      • 准备好图标后,单击“Rails”选项卡以获取在 Rails 项目中安装 favicon 的步骤。基本上,您将被要求:
        • 添加rails_real_favicon gem 给你Gemfile
        • 创建一个名为favicon.json 的新文件。该文件描述了您刚刚设计的图标。
        • 运行 rails generate favicon 以实际创建图标和 HTML 代码。
        • 在您的布局中添加 render 'favicon' 以在您的页面中插入 HTML 代码。

      此解决方案的优势在于它在资产管道中注入了网站图标文件(favicon.icoapple-touch-icon.png,还有browserconfig.xmlmanifest.json)。

      完全披露:我是 RealFaviconGenerator 的作者。

      【讨论】:

        【解决方案5】:

        我发现对我有用的解决方案是执行以下操作:

        1. 转到http://realfavicongenerator.net/favicon_checker 并确认您有一个好的网站图标。如果您不这样做,请使用他们的工具创建一个(以及许多其他有用和相关的图标)。注意:这要求您有一个好的图标(例如 PNG)作为网站图标的基础。
        2. 利用http://realfavicongenerator.net 建议使用?v=version 选项来帮助解决浏览器缓存问题。这对我有帮助。
        3. 将 favicon.ico 复制到 publicapp/assets/images。您只需要一个,但如果您不知道是哪一个,复制到这两个地方并没有什么坏处……或者您可以尝试看看哪一个有效 - 利用?v=version 执行您的测试。
        4. 在 app/views/layouts 文件(例如 application.html.erb)中布局的 &lt;head&gt;&lt;/head&gt; 部分添加以下行:

        &lt;%= favicon_link_tag 'favicon.ico' %&gt;

        希望这提供了一个简单的食谱。我敢肯定,如果我遗漏了什么,有人可以并且会改进这个答案。

        【讨论】:

        • 我是 RealFaviconGenerator 的作者。感谢您推荐它!您应该再次检查 RFG:与 Rails 的集成比以往任何时候都简单:) 而且不再需要版本控制,因为资产管道会处理它。
        • 我正在考虑在我的项目中使用 RealFaviconGenerator。我怎么认为它不支持同一个应用程序同时支持不同的网站图标,对吗?问题是我的项目回答了几个域名并为每个域名提供了不同的内容,这必须包含不同的网站图标。 RealFaviconGenerator 可以做到这一点吗?
        【解决方案6】:

        多年来一直没有这样做,但 Gimp 能够保存具有不同大小的多个图像的 .ico 文件。 您只需要导出为带有一些可见图层的 .ico 格式。

        【讨论】:

          【解决方案7】:

          写入application.html.haml

          = favicon_link_tag '/images/favicon.ico'
          

          将文件 favicon.ico 放在目录中:

          project/public/images
          

          【讨论】:

            【解决方案8】:

            例如在此处生成您的网站图标: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 时,它没有显示?
            • 所以 favicon 没有进入资产管道?
            • yourdomain.com/favicon.ico 上有图标会更好/标准,因为某些浏览器会直接请求它们(即使您不使用元标记)。
            【解决方案9】:

            虽然所有这些答案都说要创建 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' %>
            

            【讨论】:

            • realfavicongenerator.net 是免费的而且很棒!不要浪费你的钱;)
            • 投资一流的工具永远不会浪费你的钱。虽然该网站比大多数网站都好,但它甚至无法与 IconWorkshop 之类的工具相比,或者也无法离线使用的 Icon Slate 令人愉悦的用户体验。
            【解决方案10】:

            我强烈推荐这个选项。它易于使用且免费 http://converticon.com

            【讨论】:

              【解决方案11】:

              我尝试了上面的链接,但服务使用起来不是很简单。我在另一个网站上找到了这个链接,它完美地复制了我的 .png 文件,而且使用起来非常简单。我想我也会分享这个链接,因为我认为这是一项更好的服务。

              http://www.chami.com/html-kit/services/favicon/

              【讨论】:

              • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
              • 以后会做。很棒的小费。当我离开这条评论时,我还是一个相当大的菜鸟。
              【解决方案12】:

              您几乎需要一个名为 favicon.ico 的 16x16 像素图像文件,并且它必须在您网站的根目录中公开可用。

              您始终可以使用主要的图像编辑器将您的徽标或其他图像转换为 .ico 格式。有像 Gimp 这样的免费选项,可以根据现有图像制作出比在线图标生成器更好的图标。

              【讨论】:

                猜你喜欢
                • 2012-06-07
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多