在我的rails 4项目中,css使用字体文件。所以他们需要另外预编译。
我通过在config / environments / 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 )
并运行rake资产:在生产中预编译。
然而,结果如下:
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指纹的情况下生成资产?或者我应该在这种情况下将它们放到public / fonts /文件夹中?
答案 0 :(得分:2)
请按照以下步骤操作
app/assets/fonts
config/application.rb
@font-face
在CSS中声明您的字体。你会找到some help here application.css.erb
等嵌入式CSS并使用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;
}