2013-10-10 67 views
6

在我的rails 4項目css中使用字體文件。所以他們需要額外的預編譯。預編譯沒有md5指紋的特定資產

我達到與添加下列行來配置/環境/ production.rb

# Add the fonts path 
    config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts','fonts') 
    # 
    # # Precompile additional assets 
    config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) 

和運行耙資產:預編譯的生產。

然而,結果如下:

I, [2013-10-10T19:27:51.931963 #16052] INFO -- : Writing /var/lib/openshift/521e19c85004460a8e000107/app-root/runtime/repo/public/assets/fonts/glyphicons-halflings-regular-ab2f6984951c07fd89e6afdefabd93c7.eot 
I, [2013-10-10T19:27:51.940615 #16052] INFO -- : Writing /var/lib/openshift/521e19c85004460a8e000107/app-root/runtime/repo/public/assets/fonts/glyphicons-halflings-regular-24dfb40c91db789b8b8faba6886ac1ef.svg 
I, [2013-10-10T19:27:51.950685 #16052] INFO -- : Writing /var/lib/openshift/521e19c85004460a8e000107/app-root/runtime/repo/public/assets/fonts/glyphicons-halflings-regular-4b2130768da98222338d1519f9179528.ttf 
I, [2013-10-10T19:27:51.983230 #16052] INFO -- : Writing /var/lib/openshift/521e19c85004460a8e000107/app-root/runtime/repo/public/assets/fonts/glyphicons-halflings-regular-7a07f26f72466361ac9671de2d33fd1c.woff 

和CSS文件是指字體文件沒有這個MD5指紋。

我該如何預編譯資產,以便它們在沒有md5指紋的情況下生成?或者我應該把它們放在公共/字體/文件夾在這種情況下?

+2

你解決了嗎?我有同樣的問題.. –

+0

我的答案是否有效? – Ludovic

回答

2

按照以下步驟

  • 你的字體必須在app/assets/fonts
  • 添加您的字體資產路徑(像你這樣),但更喜歡config/application.rb
  • 與聲明的字體在你的CSS @font-face。您會發現some help here
  • 如果您不使用SCSS,則必須嵌入css,例如application.css.erb,並使用asset_path()助手在您的font-face聲明中實現您的字體路徑。

個例無SCSS:

@font-face { 
    font-family: 'MyFont'; 
    src:url('<%= asset_path("myfont.eot")%>'); 
    src:url('<%= asset_path("myfont.eot?#iefix")%>') format('embedded-opentype'), 
    url('<%= asset_path("myfont.svg#myfont")%>') format('svg'), 
    url('<%= asset_path("myfont.woff")%>') format('woff'), 
    url('<%= asset_path("myfont.ttf")%>') format('truetype'); 
    font-weight: normal; 
    font-style: normal; 
} 
+2

問題不在於如何在創建字體時創建字體,而是使用md5指紋創建生產字體的預編譯資源。但在網絡控制檯之後有fontawesome-webfont-62877.woff 404錯誤。它看起來像Rails沒有看到publick/assets fontawesome-webfont-62877-e70f92449ebfddada3d455eb44542655.woff中的預編譯資產,但是當我添加文件fontawesome-webfont-62877.woff沒有md5時,它工作正常。如何創建預編譯的rails可以看到生產中的字體。 –

+0

@SergeyChechaev用我的方法,一切工作在生產模式。隨着rails3我有問題,解決方案是複製public/assets /中的字體目錄。如果您不想預編譯字體,爲什麼要將它們添加到資產系統中?這有點奇怪:) – Ludovic

+0

我不明白如何在生產模式下預編譯資產,它是叉罰款我有404錯誤。 –