Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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
Ios 使用Rails生成apple touch图标_Ios_Ruby On Rails_Mobile Safari_Favicon - Fatal编程技术网

Ios 使用Rails生成apple touch图标

Ios 使用Rails生成apple touch图标,ios,ruby-on-rails,mobile-safari,favicon,Ios,Ruby On Rails,Mobile Safari,Favicon,我正在尝试将apple touch图标链接添加到我的应用程序头部,以便它将显示在主屏幕书签上。导轨说明如下: MobileSafari会寻找一个不同的链接标签,该标签指向一个图像,如果您将该页面添加到iOS设备的主屏幕上,该图像将被使用。以下调用将生成这样的标记: favicon\u link\u标签'mb icon.png',rel:'apple touch icon',键入:'image/png' 但是,当我使用以下内容时(时间戳已删除): 它无法正确生成apple touch图标(f

我正在尝试将apple touch图标链接添加到我的应用程序头部,以便它将显示在主屏幕书签上。导轨说明如下:

MobileSafari会寻找一个不同的链接标签,该标签指向一个图像,如果您将该页面添加到iOS设备的主屏幕上,该图像将被使用。以下调用将生成这样的标记:

favicon\u link\u标签'mb icon.png',rel:'apple touch icon',键入:'image/png'
但是,当我使用以下内容时(时间戳已删除):


它无法正确生成apple touch图标(favicon按预期工作)。它在href中插入“图像”而不是“资产”。生成的代码是:

<link href="/assets/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
<link href="/images/apple-icon.jpeg" rel="apple-touch-icon" type="image/jpeg">


我也尝试过在不使用TagHelper的情况下将链接直接放入应用程序文件中,但它没有将时间戳附加到文件中,因此文件不正确。

首先,apple touch图标需要为PNG格式,而不是JPEG格式。它们也应该被命名为“苹果触摸图标”

至于这个问题,第一个但不是理想的解决方案是将你的苹果图标放到你的公共目录中,并对链接进行硬编码

<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
如果你找到了,就把它拿走


除此之外,rails可能过于智能,并且意识到文件名/文件类型不正确,并添加了链接

您可以创建包含以下内容的\u favicon.html.erb部分:

<% %w(76 120 152 167 180).each do |size| %>
  <%= favicon_link_tag "apple-touch-icon-#{size}x#{size}.png", rel: 'apple-touch-icon', type: 'image/png', sizes: "#{size}x#{size}" %>
<% end %>

<% %w(16 32).each do |size| %>
  <%= favicon_link_tag "favicon-#{size}x#{size}.png", rel: 'icon', type: 'image/png', sizes: "#{size}x#{size}" %>
<% end %>

将其包含在应用程序中。html.erb

<%= render 'favicon' %>

这将创建不同尺寸的apple touch图标和配件(针对不同设备进行了优化)。然后,您可以通过许多网站中的一个生成这些图标,例如,并将它们放置在您的app/assets/images/目录中


这就是我所做的,它对我来说非常有效。

将名称改为“apple touch图标”,并使用png。Rails现在生成正确的资源路径。感谢您的帮助。这是一个生成各种favicon的伟大解决方案。新尺寸:167x167。这是为iPad Pro设计的。一个非常优雅的解决方案!
 %link{:href => "images/apple-touch-icon.png", :rel => "apple-touch-icon"}
<% %w(76 120 152 167 180).each do |size| %>
  <%= favicon_link_tag "apple-touch-icon-#{size}x#{size}.png", rel: 'apple-touch-icon', type: 'image/png', sizes: "#{size}x#{size}" %>
<% end %>

<% %w(16 32).each do |size| %>
  <%= favicon_link_tag "favicon-#{size}x#{size}.png", rel: 'icon', type: 'image/png', sizes: "#{size}x#{size}" %>
<% end %>
<%= render 'favicon' %>