亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Rails資產管道中使用字體

在Rails資產管道中使用字體

寶慕林4294392 2019-07-13 16:46:51
我在SCSS文件中配置了一些字體,如下所示:@font-face {   font-family: 'Icomoon';   src: asset-url('icoMoon.eot?#iefix', font) format('embedded-opentype'),        asset-url('icoMoon.woff', font) format('woff'),        asset-url('icoMoon.ttf', font)  format('truetype'),        asset-url('icoMoon.svg#Icomoon', font) format('svg');}實際的字體文件存儲在/app/Asset/fonts/我增加了config.assets.paths << Rails.root.join("app", "assets", "fonts")到我的application.rb文件編譯的CSS源代碼如下:@font-face {   font-family: 'Icomoon';   src: url(/assets/icoMoon.eot?#iefix) format("embedded-opentype"), url(/assets/icoMoon.woff) format("woff"), url(/assets/icoMoon.ttf)    format("truetype"), url(/assets/icoMoon.svg#Icomoon) format("svg");}但是當我運行這個應用程序時,沒有找到字體文件。日志:啟動GET“/Asset/icoMoon.ttf”為127.0.0.1在2012-06年23:21:17+0100已送達資產/icoMoon.ttf-404未找到(13 Ms)為什么資產管道沒有將字體文件壓縮為Just/Asset?人們有什么想法嗎?
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

  1. 如果您的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

  2. 在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.

  3. 如果在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(...)..這個助手做同樣的事情,但更清楚。

  4. 最后,在CSS中使用字體,就像在font-family部分。如果它被聲明為大寫,您可以這樣使用它:

    font-family: 'Icomoon';


查看完整回答
反對 回復 2019-07-13
?
慕田峪4524236

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文件夾。花了幾個小時才弄明白。希望能幫上忙。


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 700 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號