J'utilise Ruby sur Rails V3.0.9 et je voudrais récupérer le C'est-à-dire que, si dans mon application, je définit le Comment puis-je récupérer P.s.: Ce que je voudrais faire, c'est quelque chose comme Facebook fait quand ajouter un lien \ URL dans votre page Facebook: elle reconnaît le logo du site Web associé, puis ajoute que sur le lien \ URL. P> Favicon.ico Code> Image de chaque site Web pour lequel j'ai défini un lien. P>
http://www.facebook.com/ code> URL Je souhaite récupérer l'icône Facebook et utilisez \ Insert que dans mes pages Web. Bien sûr, je voudrais faire cela aussi pour tous les autres sites Web. P>
favicon.ico code> icônes de sites Web dans un mode " automatique em>" (avec "Automatique" Je veux dire rechercher un Favicon sur un site Web et obtenez le lien à cela - je pense que non, car tous les sites Web ont un favicon nommé exactement «Favicon.ico». Je voudrais reconnaître cela de manière «automatique»)? P>
8 Réponses :
Je pense avoir manqué votre question ... p>
Vous voulez attraper un Favicon d'un autre site et faire le vôtre? P>
Si c'est ce que vous voulez, vous pouvez vous rendre directement à partir de l'icône Home et l'enregistrer dans votre dossier public. P>
Ainsi: Prenez cette image et économisez avec le nom Favicon dans votre dossier public P>
fait, il devrait suffire p>
Si vous le souhaitez Dinamicaly, vous pouvez utiliser JQuery, mais si vous voulez que STATIC, vous pouvez mettre une balise d'image pointant sur: [URL racine du site Web] /Favicon.ico P>
Comme ceci: www.facebook.com code> Favicon:
www.facebook.com/favicon.ico code> p>
<% = image_tag "# {website.url} /favicon.ico"%> code> p> p> p>
Nicos Karalis Question: "Vous voulez attraper un Favicon d'un autre site et en faire le tien?" - Réponse: "Non, je voudrais faire référence à ces Favicons afin de créer une étiquette d'image HTML".
Voulez-vous dire construire une image de mosaïque?
Non, je veux utiliser ce Favicon Juste pour mettre cela près d'un nom de site Web. Par exemple ('[FV]' représente le FACEBOOK Favicon): [FV] Facebook.
Vous ne pouvez pas simplement utiliser une étiquette IMG régulière avec l'attribut SRC pointant vers le Favicon? Ceci suppose qu'un navigateur reconnaît un fichier .ico comme une image. Les méthodes aidées travailleraient probablement avec cela aussi. P> p>
Je pense que pas parce que tous les sites Web n'ont pas un favicon nommé exactement "Favicon.ico". Je voudrais reconnaître cela de manière "automatique".
Vous pouvez le faire facilement avec pismo gemme.
Exemple rapide Pour obtenir l'URL du Favicon de Facebook: P>
Pismo::Document.new('http://www.facebook.com/').favicon
Je voudrais mettre en œuvre ma propre solution \ solution aussi simple que possible.
Pismo n'est plus maintenu, et il n'autorise pas redirect code>, voir github.com/peterc/pismo/issues/15
avec javascript (jQuery), comme ceci: http://jsfiddle.net/ax8t4/ p>
Peut être le meilleur moyen d'utiliser jQuery pour atteindre ces choses?
Malheureusement, cela ne fonctionne que si le Favicon est situé dans la racine de domaine. Certains sites Web font quelque chose comme ça si: code>
Les favicons sont trouvés de deux manières. Premièrement, il y a un nom traditionnel de «codé» de `http://example.com/favicon.ico». P>
Deuxièmement, les pages HTML peuvent définir le Favicon dans leurs sections Donc, votre automate peut aller chercher la page principale du site Web donné, analyser et vérifier s'il existe des balises appropriées code>, par
code> et quelques autres. (vous voudrez peut-être lire le Article Wikipedia sur Favicon ) em> p>
code>, puis effectuez la touche "Code" dur " > Favicon.ico Code> Nom. P>
http://getfavicon.appot.com/ fonctionne bien pour récupérer des favicons. Il suffit de lui donner l'URL pour le site et vous obtiendrez le Favicon: P>
Merci. C'est la seule réponse qui ne suppose pas que l'icône est située sur "www.rooturl.com/favicon.ico"
Depuis que Getfavicon a fermé, voici une solution alternative: https://www.google .COM / S2 / Favicions? Domaine = Stackoverflow.com
Voici ma méthode de rubis, qui éliminera la fin d'une URL, appendez le Favicon et produira une étiquette d'image.
def favicon_for(url) matches = url.match(/[^:\/]\/(.*)/) image_tag url.sub(matches[1], '') + '/favicon.ico', {width: '16px', height: '16px'} end
Clever, mais il est très courant que les sites Web dévient de ce modèle, il n'est donc pas utilisable.
Récemment, j'ai écrit une solution similaire.
Si nous voulons trouver Favicon URL, cela peut être non seulement dans Ruby On Rails, j'ai utilisé Nokogiri GEM pour analyse HTML.
D'abord, nous analysons toutes les balises méta où Si nous l'avons trouvé, nous pouvons utiliser l'attribut Si nous ne pouvons pas trouver des balises méta, puis nous recherchons des balises code> lien standard code>, où et un code de ma solution: P> .ico code> et ne peut pas être à la racine, nous devrions analyser le site cible HTML. P>
itemProp code> attribut contient
image code> mot-clé. Il est nécessaire dans des situations où le site ciblé utilisé https://schema.org/webpage modèle, cette technologie plus moderne que simplement
lien code> tag. p>
Content code> comme URL Favicon. Mais nous devrions le vérifier pour une existence vraiment de l'URL, juste pour être sûr. P>
rel code> attribut contient
icône code> mot-clé. Il s'agit de la situation standard W3C ( https://www.w3.org/2005/10/ HOWTO-FAVICON ) P>
require 'open-uri'
def site_icon_link site
icon_link = nil
url = nil
doc = Nokogiri::HTML(open(site))
metas = doc.css("meta[itemprop*=image]")
if metas.any?
url = metas.first.attributes['content'].value
else
links = doc.css("link[rel*=icon]")
if links.any?
url = links.first.attributes['href'].value
end
end
if url =~ URI::regexp
icon_link = url
elsif (site + url) =~ URI::regexp
icon_link = site + url
end
icon_link
end
Juste une pensée, es-tu sûr qu'il n'y a pas de problème de copyright avec ça?
@ Johnny5 - Je ne sais pas cela à coup sûr, mais je n'utilise pas de favicons comme logo de site Web (je ne fais que insérer celles dans mes pages Web) et je pense que les favicons sont publics.