3 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果您的Rails版本介于 > 3.1.0
和 < 4
,將您的字體放置在下列任何文件夾中: Rails版本 > 4
你 必將您的字體放在 app/assets/fonts
文件夾。 注:
若要將字體放置在這些指定文件夾之外,請(qǐng)使用以下配置: config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
Rails版本 > 4.2
,是的 推薦若要將此配置添加到 config/initializers/assets.rb
.但是,您也可以將其添加到 config/application.rb
,或到 config/production.rb
app/assets/fonts
lib/assets/fonts
vendor/assets/fonts
在CSS文件中聲明字體: @font-face { font-family: 'Icomoon'; src:url('icomoon.eot'); src:url('icomoon.eot?#iefix') format('embedded-opentype'), url('icomoon.svg#icomoon') format('svg'), url('icomoon.woff') format('woff'), url('icomoon.ttf') format('truetype'); font-weight: normal; font-style: normal;}
確保字體的命名與聲明的URL部分完全相同。大寫(xiě)字母和標(biāo)點(diǎn)符號(hào)很重要。在這種情況下,字體應(yīng)該具有名稱(chēng)。 icomoon
.如果在Rails中使用Sass或更少 > 3.1.0
(CSS文件 .scss
或 .less
),然后更改 url(...)
在字體聲明中 font-url(...)
.否則,您的css文件應(yīng)該具有擴(kuò)展名。 .css.erb
,字體聲明應(yīng)該是 url('<%= asset_path(...) %>')
.如果您正在使用Rails > 3.2.1
,你可以用 font_path(...)
而不是 asset_path(...)
..這個(gè)助手做同樣的事情,但更清楚。 最后,在CSS中使用字體,就像在 font-family
部分。如果它被聲明為大寫(xiě),您可以這樣使用它: font-family: 'Icomoon';

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
現(xiàn)在有個(gè)轉(zhuǎn)折:
你應(yīng)該把所有字體都放進(jìn)去
app/assets/fonts/
因?yàn)樗麄?strong>將要默認(rèn)情況下,在暫存和生產(chǎn)中獲得預(yù)編譯-它們將在被推送到赫魯庫(kù).放置在
vendor/assets
將要不默認(rèn)情況下,在暫存或生產(chǎn)時(shí)進(jìn)行預(yù)編譯-它們將失敗。
我堅(jiān)信把供應(yīng)商的字體
vendor/assets/fonts
比把它們放進(jìn)去更有意義app/assets/fonts
..有了這2行額外的配置,這對(duì)我來(lái)說(shuō)很好(在Rails 4上):
app.config.assets.paths?<<?Rails.root.join('vendor',?'assets',?'fonts')??app.config.assets.precompile?<<?/\.(?:svg|eot|woff|ttf)$/
我也在rails 4.0.0
..實(shí)際上,最后一行就足以安全地預(yù)編譯來(lái)自vendor
文件夾。花了幾個(gè)小時(shí)才弄明白。希望能幫上忙。
- 3 回答
- 0 關(guān)注
- 709 瀏覽
添加回答
舉報(bào)