Wir bewahren unsere Schriftarten im Ordner /app/assets/fonts auf, und wenn ich mich recht erinnere, mussten wir keine zusätzliche Konfiguration vornehmen.
Sie müssen jedoch die asset_path
in Ihren CSS-Dateien, wenn Sie auf die Schriftarten verweisen (genauso wie beim Verweis auf Asset-Pipeline-Bilder in CSS). Dies erfordert eine Änderung der Dateierweiterung von .css à .css.erb . Nach Ihrer Beschreibung ist es schwer zu sagen, aber ich vermute, dass dies das Problem sein könnte.
Beispiel
Wir verwenden die Schriftart Museo500 in unserer Anwendung und speichern sie unter app/assets/fonts:
app/assets/fonts:
- museo700-regular-webfont.eot
- museo700-regular-webfont.woff
- museo700-regular-webfont.ttf
- museo700-regular-webfont.svg
Die @font-face-Deklaration lautet wie folgt:
@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;
}
Vorteile der Verwendung der Asset-Pipeline für Binärdateien
Wir machen keine Vorkompilierung für Bild- oder Schriftarten-Assets (ich schätze, man könnte die Schriftarten gzipen oder so, aber wir tun es nicht), aber ich sehe immer noch einen Vorteil darin, sie durch die Asset-Pipeline zu hosten: Einheitlichkeit und Konvention. Mit Rails Konvention kann alle Arten von Vorteilen bieten.
Beispiel: Irgendwann möchten Sie vielleicht ein CDN wie Amazon Cloudfront verwenden und müssen alle Asset-URLs in der Produktion auf die CDN-Kopien verweisen lassen. Wenn Sie alle Ihre Assets, einschließlich Schriften und Bilder, über die Asset-Pipeline hosten, ist diese Änderung so einfach wie das Ändern des asset_host in Ihrer production.rb-Datei, indem Sie die Zeilen auskommentieren:
# Enable serving of images, stylesheets, and JavaScripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"
Wenn Sie Ihre Schriftarten bereits mit der Option asset_path
helfen, werden diese URLs automatisch aktualisiert und verweisen auf das CDN. Ich denke, es ist so viel ein Vorteil der Verwendung path_helpers als die Asset-Pipeline selbst, aber so oder so ist es von Vorteil.
Ich hoffe, das hilft!