首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails资产的字体有问题

Rails资产的字体有问题
EN

Stack Overflow用户
提问于 2016-06-02 10:16:41
回答 3查看 2.5K关注 0票数 0

无论是在本地还是在heroku,我的字体都有问题。

Rails 4.2.5.1

我的字体在app/fonts文件夹中:

代码语言:javascript
复制
/app/assets/fonts/fontawesome-webfont.eot
/app/assets/fonts/fontawesome-webfont.svg
/app/assets/fonts/fontawesome-webfont.ttf
/app/assets/fonts/fontawesome-webfont.woff
/app/assets/fonts/fontawesome-webfont.otf

错误消息:

代码语言:javascript
复制
Started GET "/assets/fonts/fontawesome-webfont.ttf?v=4.2.0" for ::1 at 2016-06-01 22:12:24 -0400

ActionController::RoutingError (No route matches [GET] "/assets/fonts/fontawesome-webfont.ttf"):
  actionpack (4.2.5.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call'
  web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'
  web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'
  actionpack (4.2.5.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.5.1) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.5.1) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.5.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'

config/initializers/assets.rb具有:

代码语言:javascript
复制
Rails.application.config.assets.version = '2.0'

这里的问题可能是什么,非常困惑?

EN

回答 3

Stack Overflow用户

发布于 2016-06-02 11:11:52

尽管Rails让您将资产存储在assets/javascriptsassets/stylesheetsassets/fonts或其他格式中,但这些目录并不直接映射到URL。取而代之的是,所有服务都是从/assets提供的。所以在浏览器的地址栏中输入http://localhost:3000/assets/fontawesome-webfont.ttf,我打赌你会看到字体。

因此,您应该找到引用该字体的任何内容,并在那里修复URL (可能在CSS文件中)。注意到,在生产中,Rails还会破坏这些资产的名称,以使它们更可缓存,因此在生产中正确的网址应该是类似http://example.com/assets/fontawesome-webfont-asdfasasdfadsfadfsasf23kjksdjkasdfadsf.ttf的内容。通过使用asset_path helper,您可以确保始终获得正确的URL。还有asset_urlimage_path等等,甚至还有font_path

票数 4
EN

Stack Overflow用户

发布于 2016-06-02 15:58:09

fonts文件夹不会与资产中的其他Rails资产管道文件夹一起加载,因此需要首先将其添加到管道中。

config/application.rb文件中添加以下行:

config.assets.paths << Rails.root.join("app", "assets", "fonts")

在Application类中,如下所示

代码语言:javascript
复制
class Application < Rails::Application
  config.assets.paths << Rails.root.join("app", "assets", "fonts")
end

这将允许在应用程序启动时加载font文件夹以及其余文件夹

然后在css文件中,将所有src: url("/assets/fonts/font_name.format");更改为src: url("/assets/font_name.format");

这应该能起到作用。

票数 0
EN

Stack Overflow用户

发布于 2016-06-03 08:27:25

我从我的项目中删除了令人敬畏的css字体,只添加了darn gem,它就可以工作了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37581599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档