2012-01-27 43 views
0

在我global.css文件,該文件是由application.html.erb裝,我有以下行:Rails的 - 使用CSS3的@字體面

@font-face { 
    font-family: myfont; 
    src: url(/lib/fonts/MyFont-AH.ttf) format("truetype"); /* For IE */ 
    src: local("MyFont-AH"), url(/lib/fonts/MyFont-AH.ttf) format("truetype"); /* Non-IE */ 

} 

然後在其他地方我有

h1 { 
    font-family: myfont, helvetica, arial; 
} 

當我啓動服務器h1使用Helvetica字體,並在我的日誌ActionController::RoutingError (No route matches [GET] "/lib/fonts/MyFont-AH.ttf"):中得到錯誤。我想這意味着我需要編輯我的路由文件,所以我去了並添加了行get "/lib/fonts/MyFont-AH.ttf",但是當我重新加載頁面時,我得到錯誤missing :controller,因爲沒有控制器綁定到此操作。當我創建一個控制器並將獲取請求與它匹配時,它需要一個模板。它似乎希望我有一個控制器/動作像大多數其他獲取請求一樣設置,所以我不太確定這裏要做什麼。有什麼建議麼?

回答

8

引用他們,我升級到Rails 3.2和現在用的資產管道(從Rails的3.1+ ),並且我在vendor/assets/fonts中放置了我想要顯示的字體。然後我將以下行添加到我的application.rb文件中:config.assets.paths << "#{Rails.root}/vendor/assets/fonts"。最後,在我的CSS文件我使用的格式:

@font-face { 
    font-family: myfont; 
    src: url("/assets/myfont.ttf") format("truetype"); /* For IE */ 
    src: local("myfont"), url("/assets/myfont.ttf") format("truetype"); /* For non-IE */ 
} 

我覺得原來問題的一部分可能是我的文件存儲在擴展名爲.TTF而非.ttf,但我不知道。我所知道的是現在它正在工作。

+0

我不得不引用myfont.ttf而不是/assets/myfont.ttf,但是這起作用。 – jthomas 2013-10-17 02:11:24

1

我自己沒有這樣做,但我一直認爲你的字體應該存儲在公共或資產目錄中(取決於你使用的是哪個版本的導軌)。 Lib不是一個可供用戶下載的目錄(除非你使用某種巧妙的寶石來處理這個問題?)。

在前期的Rails 3.1我把我的字體在

public/fonts 

然後用

url(../fonts/MyFont-AH.ttf) 
+0

似乎不適合我。 – Kvass 2012-01-28 17:18:31

+0

您使用的是哪種版本的導軌? – Nick 2012-01-28 17:59:06

+0

截至今天3.2 - 當我問到我正在使用3.0.7的問題時,但現在我已經改變了我會看看我是否可以使用資產管道工作。如果您知道如何使用資產來運作,請讓我知道! – Kvass 2012-01-28 22:14:18