Ruby on rails Rails 4-自定义字体
目前,我正在尝试将自定义字体添加到Rails 4应用程序中Ruby on rails Rails 4-自定义字体,ruby-on-rails,fonts,font-face,Ruby On Rails,Fonts,Font Face,目前,我正在尝试将自定义字体添加到Rails 4应用程序中 我将所有字体添加到资产/字体中 我添加了config.assets.path更改: @font-face { font-family: 'oxygenregular'; src: url(font-path('/fonts/oxygen-regular-webfont.eot') + "?#iefix") format('embedded-opentype'),
资产/字体中
config.assets.path更改:
@font-face { font-family: 'oxygenregular';
src: url(font-path('/fonts/oxygen-regular-webfont.eot') + "?#iefix")
format('embedded-opentype'),
url(font-path('/fonts/oxygen-regular-webfont.woff')) format('woff'),
url(font-path('/fonts/oxygen-regular-webfont.ttf')) format('truetype'),
url(font-path('/fonts/oxygen-regular-webfont.svg') + "#MyFont") format('svg'); }
body { font-family: 'oxygenregular', ...}
由于您正在加载位于/assets/stylesheets(和浏览器中的/stylesheets/)中的“style.css”中的字体,因此脚本尝试加载/stylesheets/oxygen-regular-webfont.eot
将“/fonts/”附加到路径应该可以正常工作。
如果仍有错误,请检查浏览器的开发者控制台。字体
问题是调用字体文件时没有正确引用其路径
这里的问题与您从资产管道中引用图像或其他文件时的问题相同-如果您使用的文件路径不存在,则不会加载(因为:
指纹识别是一种使文件名依赖的技术
关于文件的内容。当文件内容更改时
文件名也会更改。对于静态或不频繁的内容
更改后,这提供了一种简单的方法来判断
即使在不同的服务器或部署日期之间,文件也是相同的
许多Rails资产都无法引用正确的文件,因为当您预编译它们时,文件路径的名称已经更改,在大多数情况下都无法加载它们
路径
要添加到@praszyk
,您的答案是需要使用资产路径之一
来提取正确的字体路径,这可以使用Rails附带的一个路径来完成(通常是SCSS
或SASS
)
您遇到的问题是使用.css
无法做到这一点-您必须使用.scss
或.sass
:
#app/assets/stylesheets/style.css.scss
@font-face { font-family: 'oxygenregular';
src: asset_url('/fonts/oxygen-regular-webfont.eot' + "?#iefix")
format('embedded-opentype'),
asset_url('/fonts/oxygen-regular-webfont.woff') format('woff'),
asset_url('/fonts/oxygen-regular-webfont.ttf') format('truetype'),
asset_url(font-path('/fonts/oxygen-regular-webfont.svg') + "#MyFont") format('svg'); }
将asset\u url
与scss
一起使用将自动调用文件的正确版本-是否有指纹
如果你把它与@praszyk
的答案结合起来使用,它应该很有希望起作用我用@praszyk
和你的方法尝试过,但仍然不起作用。我将style.css
更改为style.css.scss
,并将代码更改为您的代码。如果您使用的是sass,asset url
带有连字符,而不是带有下划线的asset\u url
。前者是sass,而后者是rails(如果我在这方面错了,请纠正我)。此外,除了asseturl
之外,还有一个更具语义的助手方法font-url
。使用字体url时,它将在/assets/fonts/文件夹中搜索,就像图像url
搜索/assets/images/文件夹一样。也看到这个@praszyk
我试着像你一样修改代码,但仍然不起作用。如果我把代码放在assets/stylesheet/application.css上会更好吗?您是否将/font/添加到了您的资产管道中?您是否可以在assets下创建任何文件夹,然后会出现一个神奇的方法“foldername path”?即使文档中没有“字体路径”,也可以这样调用它吗?子问题:正在执行Rails.application.config.assets.precompile吗