ruby-on-rails – Rails 4:为什么字体不能在生产中加载?

我的Rails 4应用程序在生产中无法加载字体,它在开发中正常工作.

资源在部署时在服务器上预编译.

我有我的字体

应用程序/资产/字体

我的app.css:

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

在我的production.rb我有

config.assets.precompile << Proc.new { |path|
  if path =~ /\.(eot|svg|ttf|woff)\z/
    true
  end
}

解决方法

我们上周遇到这个问题 – 问题是您的资产将被编译为对其进行MD5散列,而您的标准CSS仍将寻找其“标准”名称.这是图像和字体.
@font-face {
    font-family: 'akagi';
    src: asset_url('fonts/akagi-th-webfont.eot');
    src: asset_url('fonts/akagi-th-webfont.eot?#iefix') format('embedded-opentype'),asset_url('fonts/akagi-th-webfont.woff') format('woff'),asset_url('fonts/akagi-th-webfont.ttf') format('truetype'),asset_url('fonts/akagi-th-webfont.svg#akagithin') format('svg');
    font-weight: 300;
    font-style: normal;
}

这是一个如何使用scss文件动态加载资源的示例.这些文件被编译(在push或init之前)到.css文件中,所有这些文件的资产都正确同步.

我们与Heroku有类似的问题,并通过将我们的文件放在/stylesheets/layout/fonts.css.scss中,然后调用

@import '/layout/fonts';

我们也叫我们的application.css – > application.css.scss来支持@import函数

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...