Мы храним наши шрифты в папке / app / assets / fonts, и, насколько я помню, нам не нужно было выполнять какую-либо дополнительную настройку.
Однако вы должны использовать помощник asset_path
в своем CSSфайлы при ссылке на шрифты (так же, как при обращении к изображениям конвейера ресурсов в CSS).Для этого необходимо изменить расширение файла с .css на .css.erb .Трудно сказать наверняка из вашего описания, но я предполагаю, что это может быть проблемой.
Пример
Мы используем шрифт Museo500 в нашем приложении и сохраняем его в app / assets / fonts:
app/assets/fonts:
- museo700-regular-webfont.eot
- museo700-regular-webfont.woff
- museo700-regular-webfont.ttf
- museo700-regular-webfont.svg
Объявление @ font-face выглядит следующим образом:
@font-face {
font-family: 'Museo700';
src: url('<%= asset_path "museo700-regular-webfont.eot" %>');
src: url('<%= asset_path "museo700-regular-webfont.eot" %>?#iefix') format('embedded-opentype'),
url('<%= asset_path "museo700-regular-webfont.woff" %>') format('woff'),
url('<%= asset_path "museo700-regular-webfont.ttf" %>') format('truetype'),
url('<%= asset_path "museo700-regular-webfont.svg" %>#Museo700') format('svg');
font-weight: normal;
font-style: normal;
}
Преимущества использования конвейера ресурсов для двоичных файлов
Мы не выполняем никакой предварительной компиляции для ресурсов изображений или шрифтов (я думаю, вы могли бы сжать шрифты или что-то еще, но мы этого не делаем)но я все еще вижу выгоду для размещения их через конвейер активов: единообразие и соглашение.Соглашение Rails может предложить все виды преимуществ.
Пример. В какой-то момент вы можете захотеть использовать CDN, например Amazon Cloudfront, и вам понадобится сделать все URL-адреса активов в рабочей точке для копий CDN.Если вы размещаете все свои активы, включая шрифты и изображения, через конвейер ресурсов, то изменить так же просто, как изменить ресурс asset_host в файле production.rb, раскомментировав строки:
# Enable serving of images, stylesheets, and JavaScripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"
Если вы уже ссылаетесьваши шрифты с помощником asset_path
, тогда эти URL будут обновлены автоматически, чтобы указывать на CDN.Я полагаю, что использование path_helpers дает столько же преимуществ, сколько и сам конвейер ресурсов, но в любом случае это полезно.
Надеюсь, это поможет!