在Rails 4.0中使用@ font-face,找不到自定义字体的Sass URL

在我的Rails项目中,我正在尝试使用自定义字体。 有很多与这个问题相关的答案,就像这个没有帮助的答案一样,我编辑了development.rb .rb:

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

仍然显示No route matches [GET] "/assets/chalkduster-webfont.woff"

我给我的url是:

 @font-face { font-family: 'chalkdusterregular'; src: url('chalkduster-webfont.eot'); src:url('chalkduster-webfont.svg#chalkdusterregular') format('svg'), url('chalkduster-webfont.eot?#iefix') format('embedded-opentype'), url('chalkduster-webfont.woff') format('woff'), url('chalkduster-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } 

我在源代码中尝试了font_path('') ,而且font-url()它从font_path('') 。 🙁

尝试asset-url() 。 适合我。

 @font-face { font-family: 'chalkdusterregular'; src: asset-url('chalkduster-webfont.eot'); src: asset-url('chalkduster-webfont.svg#chalkdusterregular') format('svg'), asset-url('chalkduster-webfont.eot?#iefix') format('embedded-opentype'), asset-url('chalkduster-webfont.woff') format('woff'), asset-url('chalkduster-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } 

此外,我只添加字体路径并在config / environments / production.rb中预编译其他资产

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

不需要添加到config / environments / development.rb,因为asset-url有点神奇。

我发现一个替代方案更容易实现而不是必需的导入,这是:您可以在基本64文本上转换您的字体文件。 确保选中Base64编码选项 在此处输入图像描述

然后单击转换并下载生成页面的.zip文件。 在.zip文件里面打开de .css,你会看到你需要的代码。 在此处输入图像描述


我尝试实施jverban的解决方案,但对我来说,不起作用。

然后我找到了一个tuto,在那里解释两种方式, 点击打开tuto

我尝试第二种解决方案(黑客的方式)。 唯一要做的就是移动app / assets / stylesheets中的fonts文件夹。 (我假设您将所有字体都放在名为fonts的文件夹中)

然后在css文件中scss,你可以使用这段代码。

 @font-face { font-family: 'GoodDDC'; src: url(asset_path("fonts/GOODDC.ttf")); } 

rails上的asset_path参考文件夹app/assets/stylesheets

树文件夹看起来像

 app/assets/stylesheets/fonts/yourfont.ttf (wof, etc)