1

我在使用指南针的 Spree 0.70 应用程序中通过 Rails 3.1 提供网络字体时遇到问题(我认为这不会有所作为)

我有一个包含声明的 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 类型有关,尽管我不确定。

提前致谢

4

1 回答 1

1

当您使用 font_url 或其他 rails 3.1 资产助手时,您不需要资产类型 - 在这种情况下:'fonts' - 在 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');

这解决了这个问题。希望这可以帮助遇到此问题的其他人。

猜猜我还在习惯资产管道......把这个当作一个男生的错误!

于 2011-10-17T19:34:17.517 回答