Ошибка 406 ответа Rails 3.1 при загрузке веб-шрифтов

У меня проблемы с обслуживанием веб-шрифтов через Rails 3.1 в приложении Spree 0.70 с использованием компаса (что, я думаю, не должно иметь значения)

У меня есть файл scss, содержащий объявления:

@font-face {
  font-family: 'RokkittRegular';
  src: font_url('fonts/store/rokkitt-font/Rokkitt-webfont.eot');
  src: local('Rokkitt Regular'),
    font_url('fonts/store/rokkitt-font/Rokkitt-webfont.eot?#iefix') format('embedded-opentype'),
    font_url('fonts/store/rokkitt-font/Rokkitt-webfont.woff') format('woff'),
    font_url('fonts/store/rokkitt-font/Rokkitt-webfont.ttf') format('truetype'),
    font_url('fonts/store/rokkitt-font/Rokkitt-webfont.svg#RokkittRegular') format('svg');
  font-weight: normal;
  font-style: normal;
}

Эти объявления успешно включаются в выводимый css, а сами файлы шрифтов сохраняются в:

/app/assets/fonts/store/rokkitt-font/

и содержат:

  • Rokkitt-webfont.eot
  • Rokkitt-webfont.svg
  • Rokkitt-webfont.ttf
  • Rokkitt-webfont.woff

Но когда я захожу на сайт, шрифты не отображаются. Я пробовал обращаться к файлам напрямую и не получил ответа. Я ожидал, что браузер попытается загрузить файл, но вместо этого я получаю ответ об ошибке 406. Другие активы в таблицах стилей, например изображения, отображаются правильно. Может ли кто-нибудь помочь мне диагностировать это? Я думал, что это может быть как-то связано с Mime-типами, хотя я не уверен.

заранее спасибо


person purpletonic    schedule 16.10.2011    source источник


Ответы (1)


Когда вы используете font_url или другие помощники ресурсов Rails 3.1, вам не нужен тип ресурса — в данном случае: «шрифты» — в URL-адресе. Таким образом, URL-адреса должны были быть:

font_url('store/rokkitt-font/Rokkitt-webfont.eot?#iefix') format('embedded-opentype'),
font_url('store/rokkitt-font/Rokkitt-webfont.woff') format('woff'),
font_url('store/rokkitt-font/Rokkitt-webfont.ttf') format('truetype'),
font_url('store/rokkitt-font/Rokkitt-webfont.svg#RokkittRegular') format('svg');

Что решает проблему. Надеюсь, это поможет любому, кто сталкивается с этой проблемой.

Думаю, я все еще привыкаю к ​​конвейеру активов... считайте это ошибкой школьника!

person purpletonic    schedule 17.10.2011