Ruby on rails 不带md5指纹的预编译特定资产
在我的Rails4项目中,css使用字体文件。因此,还需要对它们进行预编译 我通过在config/environments/production.rb中添加以下行来实现这一点Ruby on rails 不带md5指纹的预编译特定资产,ruby-on-rails,assets,precompile,Ruby On Rails,Assets,Precompile,在我的Rails4项目中,css使用字体文件。因此,还需要对它们进行预编译 我通过在config/environments/production.rb中添加以下行来实现这一点 # Add the fonts path config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts','fonts') # # # Precompile additional assets config.assets.
# 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 )
css文件指的是没有这个md5指纹的字体文件
如何预编译资产,以便在没有md5指纹的情况下生成它们?或者在这种情况下,我应该将它们放在public/font/文件夹中吗?按照以下步骤操作
- 您的字体必须位于
app/assets/font
- 将您的字体添加到资产路径(就像您那样),但更喜欢
config/application.rb
- 在你的CSS中声明你的字体时,使用a
。你会发现@font-face
- 如果不使用SCS,则必须具有嵌入式css,如
,并使用application.css.erb
helper在字体面声明中实现字体路径asset\u path()
@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;
}
@font-face{
字体系列:“MyFont”;
src:url(“”);
src:url(“”)格式('embedded-opentype'),
url(“”)格式('svg'),
url(“”)格式('woff'),
url(“”)格式('truetype');
字体大小:正常;
字体风格:普通;
}
您解决了吗?我也有同样的问题。我的答案有效吗?问题不在于如何创建字体,而在于如何使用md5 fingerprint为生产字体创建预编译资产。但在网络控制台中出现fontawesome-webfont-62877.woff 404错误后。看起来rails在publick/assets fontawesome-webfont-62877-e70f92449ebfddadadad3d455eb44542655.woff中看不到预编译资产,但当我在没有md5的情况下添加文件fontawesome-webfont-62877.woff时,工作正常。如何创建rails在生产模式下查看字体的预编译。@SergeyChechaev使用我的方法,所有内容都在生产模式下工作。对于rails3,我遇到了一些问题,解决方案是复制public/assets/中的字体目录。如果您不想预编译字体,为什么要将它们添加到系统中?这有点奇怪:)我不知道如何在生产模式下预编译资产,这很好,我有404错误。@SergeyChechaev仔细阅读了答案-您需要更改CSS文件的扩展名为.erb,以便在预编译时,包含指纹字体文件路径,而不是原始文件名。
@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;
}