3 回答

TA貢獻1934條經驗 獲得超2個贊
如果您的Rails版本介于 > 3.1.0
和 < 4
,將您的字體放置在下列任何文件夾中: Rails版本 > 4
你 必將您的字體放在 app/assets/fonts
文件夾。 注:
若要將字體放置在這些指定文件夾之外,請使用以下配置: 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部分完全相同。大寫字母和標點符號很重要。在這種情況下,字體應該具有名稱。 icomoon
.如果在Rails中使用Sass或更少 > 3.1.0
(CSS文件 .scss
或 .less
),然后更改 url(...)
在字體聲明中 font-url(...)
.否則,您的css文件應該具有擴展名。 .css.erb
,字體聲明應該是 url('<%= asset_path(...) %>')
.如果您正在使用Rails > 3.2.1
,你可以用 font_path(...)
而不是 asset_path(...)
..這個助手做同樣的事情,但更清楚。 最后,在CSS中使用字體,就像在 font-family
部分。如果它被聲明為大寫,您可以這樣使用它: font-family: 'Icomoon';

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