在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)