Rails - Использование CSS3's @ font-face - PullRequest
0 голосов
/ 27 января 2012

В моем global.css файле, который загружен application.html.erb, у меня есть следующие строки:

@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, потому что к этому действию не привязан контроллер. Когда я создал контроллер и сопоставил с ним запрос get, он захотел шаблон. Кажется, он хочет, чтобы я настроил контроллер / действие, как и большинство других запросов get, поэтому я не совсем уверен, что здесь делать. Есть предложения?

Ответы [ 2 ]

8 голосов
/ 30 января 2012

Я обновил до Rails 3.2 и использую Asset Pipeline (из 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, но яТочно сказать не могу.Все, что я знаю, это работает сейчас.

1 голос
/ 27 января 2012

Я сам этого не делал, но я бы подумал, что ваши шрифты должны храниться либо в общем каталоге, либо в каталоге ресурсов (в зависимости от того, какую версию rails вы используете). Lib - это не каталог, из которого пользователи могут загружать файлы (если вы не используете какой-то умный камень, который предназначен для вас?).

В pre Rails 3.1 я поместил свои шрифты в

public/fonts

А затем ссылаться на них с

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