在由 application.html.erb
加载的我的 global.css
文件中,我有以下几行:
@font-face {
font-family: myfont;
src: url(/lib/fonts/MyFont-AH.ttf) format("truetype"); /* For IE */
src: local("MyFont-AH"), url(/lib/fonts/MyFont-AH.ttf) format("truetype"); /* Non-IE */
}
然后我在其他地方
h1 {
font-family: myfont, helvetica, arial;
}
当我启动服务器时 h1 使用的是 Helvetica 字体,我在日志中收到错误 ActionController::RoutingError (No route matches [GET] "/lib/fonts/MyFont-AH.ttf"):
。我想这意味着我需要编辑我的路由文件,所以我去添加了 get "/lib/fonts/MyFont-AH.ttf"
行,但是当我重新加载页面时我收到错误 missing :controller
因为没有 Controller 绑定(bind)到此操作。当我创建一个 Controller 并将 get 请求与其匹配时,它需要一个模板。它似乎希望我像大多数其他 get 请求一样设置 Controller /操作,所以我不太确定在这里做什么。有什么建议吗?
最佳答案
我升级到 Rails 3.2 并使用 Asset Pipeline(来自 Rails 3.1+),并将我想要显示的字体放在 vendor/assets/fonts
中.然后我将以下行添加到我的 application.rb
文件:config.assets.paths << "#{Rails.root}/vendor/assets/fonts"
.最后,在我的 CSS 文件中,我使用了以下格式:
@font-face {
font-family: myfont;
src: url("/assets/myfont.ttf") format("truetype"); /* For IE */
src: local("myfont"), url("/assets/myfont.ttf") format("truetype"); /* For non-IE */
}
我认为部分原始问题可能是我的文件以扩展名 .TTF
存储而不是 .ttf
但我不确定。我所知道的是它现在正在运行。
关于ruby-on-rails-3 - Rails——使用 CSS3 的@font-face,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033483/