Method: ActionView::Helpers::AssetTagHelper#favicon_link_tag
- Defined in:
- actionview/lib/action_view/helpers/asset_tag_helper.rb
#favicon_link_tag(source = "favicon.ico", options = {}) ⇒ Object
Returns a link tag for a favicon managed by the asset pipeline.
If a page has no link like the one generated by this helper, browsers ask for /favicon.ico automatically, and cache the file if the request succeeds. If the favicon changes it is hard to get it updated.
To have better control applications may let the asset pipeline manage their favicon storing the file under app/assets/images, and using this helper to generate its corresponding link tag.
The helper gets the name of the favicon file as first argument, which defaults to “favicon.ico”, and also supports :rel and :type options to override their defaults, “icon” and “image/x-icon” respectively:
favicon_link_tag
# => <link href="/assets/favicon.ico" rel="icon" type="image/x-icon" />
favicon_link_tag 'myicon.ico'
# => <link href="/assets/myicon.ico" rel="icon" type="image/x-icon" />
Mobile Safari looks for a different link tag, pointing to an image that will be used if you add the page to the home screen of an iOS device. The following call would generate such a tag:
favicon_link_tag 'mb-icon.png', rel: 'apple-touch-icon', type: 'image/png'
# => <link href="/assets/mb-icon.png" rel="apple-touch-icon" type="image/png" />
312 313 314 315 316 317 318 |
# File 'actionview/lib/action_view/helpers/asset_tag_helper.rb', line 312 def favicon_link_tag(source = "favicon.ico", = {}) tag("link", { rel: "icon", type: "image/x-icon", href: path_to_image(source, skip_pipeline: .delete(:skip_pipeline)) }.merge!(.symbolize_keys)) end |