2012-03-28 14 views
72

So che le nuove app di rails sono dotate di un file favicon.ico vuoto. Voglio sapere come faccio ad aggiungere una favicon. So che puoi usare l'helper favicon_link_tag, ma non sono sicuro di come popolare il file favicon.ico. Usi i generatori di favicon? Se sì, qual è il migliore?Come aggiungere favicon in rails 3.2

Voglio anche essere in grado di memorizzarlo nella cache, anche i binari lo fanno automaticamente?

Grazie

+3

http://stackoverflow.com/questions/6130593/adding-icon-to-rails-website questo post help you – Norto23

+3

great name btw lol –

risposta

68

generare il favicon per esempio qui: http://www.favicon.cc/ e mettere in a/directory pubblica

UPDATE Favicon nella cartella pubblica non è precompilato e può essere memorizzato nella cache per un lungo periodo. Sembra che sia meglio usare favicon_link_tag per evitare problemi di aggiornamento di favicon. Non so che i browser avessero bisogno di favicon in root. Secondo favicon wiki tutti i browser moderni mantiene

<link rel="shortcut icon" href="favicon path" /> (favicon_link_tag) 
+0

Grazie. Per qualche ragione, posso vedere la favicon quando è 'www.website.com', ma quando vado su' website.com', non viene visualizzata? – noob

+2

prova ad aggiornare la cache del tuo browser – gayavat

+26

Quindi la favicon non va nella pipeline degli asset? – James

2

È praticamente bisogno di un file di immagine 16x16 pixel chiamato favicon.ico e deve essere disponibile pubblicamente nella root del vostro sito.

È sempre possibile utilizzare un editor di immagini principale per convertire il logo o altra immagine nel formato .ico. Ci sono opzioni gratuite come Gimp che possono rendere tali icone fantastiche basate sull'immagine esistente meglio dei generatori di icone online.

1

Ho provato i collegamenti sopra e i servizi non erano molto semplici da usare. Trovo questo link su un altro sito e copiato il mio file .png in modo impeccabile ed è stato molto semplice da usare. Ho pensato di condividere questo link anche perché penso che sia un servizio migliore.

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

+1

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. – OneChillDude

+0

Lo faranno in futuro. Ottimo consiglio. Ero ancora abbastanza grande quando ho lasciato questo commento. – Matt

5

consiglio vivamente questa opzione. E 'stato facile da usare e gratuito http://converticon.com

+0

Ha funzionato per me, il collegamento era veloce e facile. Grazie. – Nikola

107

Basta aggiungere questo alla sezione <head></head> dei vostri layout:

<%= favicon_link_tag 'favicon.ico' %> 

Posizionare l'immagine favicon.ico in /app/assets/images/ se si utilizza la pipeline di asset, e in /public/images/ se tu non sei.

Inoltre, c'è un bug se si utilizza Ruby 2.0 con Rails 3.0.20 (e forse anche 3.0.x), che genera un'eccezione quando si tenta di rendere favicon.ico.

La correzione è quello di inserire il seguente codice in application_controller.rb:

config.relative_url_root = "" 
+0

Mi piace questa soluzione. Cerco questo problema perché voglio mettere degli identificatori chiari nella favicon per le schede dev/stage/prod, e questo è quello di cui avevo bisogno! – asfallows

+0

hmm ... Ho appena avuto l'espressione più strana di questo bug, solo avere favicon.ico nella mia directory pubblica (che funziona bene nello sviluppo e su heroku) non ha funzionato e cercare stranamente di cercare "myhostname.com/favicon .ico "mi avrebbe dato la schermata di benvenuto di nginx (quella in cui hai appena installato nginx, non ho idea del perché, ecco perché sto postando questo, perché è incredibilmente strano per il mio) quindi non appena ho aggiunto il favicon_link_tag tutto andava bene, la favicon si presentava e guardandola funzionava direttamente. tutto questo da un'app altrimenti perfetta. –

9

Mentre tutte queste risposte hanno da dire per creare un'icona 16x16, la realtà è che si dovrebbe essere la creazione sia un 16x16 e 32x32, in ordine per supportare i display retina. Nessuno dei generatori online ha fatto un ottimo lavoro con questo.

Su Mac, c'è una fantastica app da $ 5 chiamata Icon Slate, che consente di creare facilmente entrambi i formati in un singolo file ICO.

Su Windows, ho usato Axialis IconWorkshop con grande successo, ma è uno strumento molto più pesante, ed è significativamente più costoso a circa € 50.

Entrambi creeranno un file ico con entrambe le immagini 16x16 e 32x32 al suo interno.

Se si utilizza la pipeline degli asset, utilizzare la cartella app/assets/images anziché/public. Il numero di browser marginali che ignorano il tag link si sta rapidamente avvicinando a zero, quindi non vale la pena di saltare attraverso i cerchi per sistemarli.

Come accennato in altre risposte, utilizzare questo nel head per visualizzarla:

<%= favicon_link_tag 'favicon.ico' %> 
+4

[realfavicongenerator.net] (http://realfavicongenerator.net) è gratuito e fantastico! non sprecare i tuoi soldi;) – MMachinegun

+3

Investire in strumenti superbi non spreca mai i tuoi soldi. Sebbene questo sito sia migliore di molti, non è nemmeno paragonabile a uno strumento come IconWorkshop, o alla piacevole esperienza utente di Icon Slate, che è anche utilizzabile offline. –

3

scrittura in application.html.haml:

= favicon_link_tag '/images/favicon.ico' 

posto di file favicon.ico in dir:

project/public/images 
1

Non lo faccio da anni, ma Gimp è in grado di salvare file .ico con più immagini di dimensioni diverse. Hai solo bisogno di esportare in formato .ico con alcuni strati visibili.

0

La soluzione che ho trovato che ha funzionato per me è stato quello di effettuare le seguenti operazioni:

  1. Vai a http://realfavicongenerator.net/favicon_checker e confermare di avere un buon favicon. Se non lo fai, usa il loro strumento per crearne uno (più molte altre icone utili e correlate). Nota: è necessario disporre di una buona icona (ad es. PNG) da utilizzare come base per la favicon.
  2. Approfitta del suggerimento http://realfavicongenerator.net per utilizzare l'opzione ?v=version per aiutare a sconfiggere il problema del caching del browser. Questo mi ha aiutato.
  3. Copia il file favicon.ico in public e app/assets/images. Ne avrai solo bisogno, ma se non sai quale, copiare in entrambi i casi non fa male ... oppure puoi sperimentare per vedere quale funziona: approfitta dello ?v=version per eseguire il test.
  4. aggiungere la seguente riga nella sezione <head></head> dei vostri layout in/Vista file app/layout (per esempio application.html.erb):

<%= favicon_link_tag 'favicon.ico' %>

Speriamo che fornisce una ricetta semplice. Sono sicuro che se mi manchi qualcosa, qualcuno può e migliorerà questa risposta.

+0

Sono l'autore di RealFaviconGenerator. Grazie per averlo consigliato! Dovresti ricontrollare RFG: l'integrazione con Rails è più semplice che mai :) E non c'è più bisogno di versioning, poiché la pipeline degli asset la gestisce. –

+0

Stavo pensando di utilizzare RealFaviconGenerator nel mio progetto. Come mai penso che non supporti contemporaneamente diverse favicon per la stessa app, vero? Il problema è che il mio progetto risponde a diversi nomi di dominio e presenta qualcosa di diverso per ognuno, questo deve includere una favicon diversa. È possibile con RealFaviconGenerator? –

1

per generare una favicon per tutte le piattaforme (non solo per i browser desktop), è possibile utilizzare RealFaviconGenerator e la gemma rails_real_favicon:

  • Vai a RealFaviconGenerator e presentare la vostra immagine. Puoi creare la tua icona, piattaforma per piattaforma: iOS, Android, ecc.
  • Una volta che l'icona è pronta, fai clic sulla scheda "Rails" per ottenere i passaggi per installare la tua favicon nel tuo progetto Rails. In sostanza, vi verrà chiesto di:
    • Aggiungere il rails_real_favicon gemma a voi Gemfile
    • Creare un nuovo file denominato favicon.json. Questo file descrive le icone che hai appena progettato.
    • Eseguire rails generate favicon per creare effettivamente le icone e il codice HTML.
    • Aggiungi render 'favicon' nei tuoi layout per inserire il codice HTML nelle tue pagine.

Il vantaggio di questa soluzione è che inietta i file favicon (favicon.ico, apple-touch-icon.png, ma anche browserconfig.xml e manifest.json) nella conduttura di asset.

Full disclosure: Sono l'autore di RealFaviconGenerator.

0

ho avuto un problema quando ho messo file in /public/favicon.ico, sto usando AWS EBS.

ho potuto risolvere l'errore.

La soluzione migliore per me è stato messo il file in /app/assets/images/favicon.ico e di utilizzare = favicon_link_tag 'favicon.ico'