2012-07-03 12 views
6

Non so cosa c'è che non va. Sembra che lo stia facendo bene. Sto cercando di utilizzare Font Awesome nella mia applicazione ma il carattere non viene visualizzato. Ho una cartella chiamata fonts e nel mio application.rb inclusa la linea:Come far funzionare i caratteri in Rails 3.1?

class Application < Rails::Application 
# Enable the asset pipeline 
config.assets.enabled = true 
# This line 
config.assets.paths << Rails.root.join("app", "assets", "fonts") 

e che invece di avere i file css 2 che vengono con Font-Awesome (CAMBIATO VEDI SOTTO) (non ha bisogno di IE7 uno) Ho appena inserito il css principale all'interno del mio application.css. Poi cambio gli URL per rilevare i file dei font.

@font-face { 
    font-family: "FontAwesome"; 
    src: url('<%= asset_path('fontawesome-webfont.eot') %>'); 
    src: url('<%= asset_path('fontawesome-webfont.woff') %>') format('woff'), 
    url('<%= asset_path('fontawesome-webfont.ttf') %>') format('truetype'), 
    url('<%= asset_path('fontawesome-webfont.svg#FontAwesome') %>') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

Ho spento il server e riavviato dopo ogni modifica al codice, ma ancora non va bene. Cosa mi manca?

UPDATE:

non sto usando SASS o meno. Forse il @font-face è il problema? Non ho mai visto questo tipo di uso del codice prima.

UPDATE

Ora sto utilizzando il file font-awesome.css. Ma non è visibile nel mio codice sorgente.

<head> 
    <link href="/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"> 
    <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css"> 
    <link href="/assets/chosen.css?body=1" media="screen" rel="stylesheet" type="text/css"> 
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script><style type="text/css"></style> 
    <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
    <script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <script src="/assets/chosen.jquery.min.js?body=1" type="text/javascript"></script> 
</head> 

risposta completa

Questo è come si può ottenere Font-Impressionante lavorare con inserendolo normalmente.

PREVENTIVO da: https://gist.github.com/2251151

1. Download font-awesome from https://github.com/FortAwesome/Font-Awesome 

2. Put the font folder font folder in the app/assets. I renamed the folder from font to fonts to make it clearer 

3. Add config.assets.paths << "#{Rails.root}/app/assets/fonts" to config/application.rb. This is to include the apps/assets/fonts folder in the asset pipeline 

4. Put the font-awesome.css file in the app/assets/stylesheets folder 

5. The first part of the css should be: 

@font-face { 
    font-family: 'FontAwesome'; 
    src: url('fontawesome-webfont.eot'); 
    src: url('fontawesome-webfont.eot?#iefix') format('embedded-opentype'), 
     url('fontawesome-webfont.woff') format('woff'), 
     url('fontawesome-webfont.ttf') format('truetype'), 
     url('fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'), 
     url('fontawesome-webfont.svg#FontAwesomeRegular') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

#--------------------------------------------------------------------------------------------- 

You should then be able to use: 

<div style="font-size: 24px;"> 
    <i class="icon-camera-retro"></i> icon-camera-retro 
</div> 
+0

si prega di fornire un campione della en file application.css per pneumatici –

+1

È necessario aggiungere l'estensione **. erb ** per analizzare le parti erubiche nel file CSS. non c'è bisogno di .scss però. Inoltre, puoi sempre andare su /assets/application.css e vedere come Rails restituisce i tuoi dati CSS – yoavmatchulsky

+1

'* = font-awesome' è sbagliato, penso. Come test, rimuovilo e aggiungi '* = require_tree' appena prima della chiusura' */'. Vedi se aiuta. – Zabba

risposta

4

Hai davvero bisogno di mettere quel codice in un file css.scss poi includerlo nel application.css (è necessario il css.scss utilizzare le asset_paths)

UPDATE: È necessario cambiare la vostra *= font-awesome per *= require font-awesome e anche rinominare font-awesome.css-font-awesome.css.scss

+0

Quindi devo usare SCSS? Non riesco a utilizzare il normale file 'css'? Inoltre, ho cancellato tutti i file Font-Awesome per riavviarlo e ora sto usando il file normale 'font-awesome.css', ma non ho notato che quando lo includo all'interno del mio' application.css' con '* = require_self' non viene visualizzato nelle mie pagine Codice sorgente. cioè non rilevato, questo è l'unico file che fa questo. – LearningRoR

+0

Ho aggiornato il mio codice sopra. – LearningRoR

+0

OK, finora tutto bene ma l'ultima cosa è che non capisco questo errore che sto ottenendo ora: 'CSS non valido dopo" ... awesome-webfont ": previsto") ", era" .eot ")% > '); "' – LearningRoR

Problemi correlati