Ruby on rails heroku上找不到字体(404)

Ruby on rails heroku上找不到字体(404),ruby-on-rails,ruby,heroku,ruby-on-rails-4,ruby-2.1,Ruby On Rails,Ruby,Heroku,Ruby On Rails 4,Ruby 2.1,部署到heroku后,字体会丢失,这意味着加载页面时找不到字体 #application.ru config.assets.paths << Rails.root.join('app', 'assets', 'fonts') config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/ 如果字体位于app/assets/fonts中,则不必将它们添加到加载路径,这样就可以从application.rb中删除这两行 尝试将样

部署到heroku后,字体会丢失,这意味着加载页面时找不到字体

#application.ru

config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/
如果字体位于app/assets/fonts中,则不必将它们添加到加载路径,这样就可以从application.rb中删除这两行

尝试将样式表中的资产url更改为字体url

您可以通过在终端中运行ENV=production-rake-assets:precompile来检查预编译是否在本地工作。

如果您的字体在app/assets/fonts中,您不必将它们添加到加载路径,因此您可以从application.rb中删除这两行

尝试将样式表中的资产url更改为字体url

您可以通过在终端中运行ENV=production-rake-assets:precompile来检查预编译是否在本地工作。

将woff、eot、svg和ttf文件放在app/assets/font中 以及app/assets/stylesheets文件夹中的font_name.scss

不要忘记.scss扩展名和资产路径帮助器

在assets.rb中:

Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/
将woff、eot、svg和ttf文件放入app/assets/font 以及app/assets/stylesheets文件夹中的font_name.scss

不要忘记.scss扩展名和资产路径帮助器

在assets.rb中:

Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/

如何从样式表链接到字体?当它们位于app/assets/font中时,您甚至不必将其添加到资产加载路径以使其工作。您可以尝试heroku运行rake assets:precompile吗?不确定这是否会产生影响,但请尝试将资产url更改为字体url。请尝试在本地计算机上预编译资源,以查看通过运行ENV=production-rake-assets:precompile是否也包含字体。@fivedigit,我两次都做了,不确定到底是什么帮助了我,但这很有帮助,谢谢。我通过将字体从供应商/资源文件夹移动到根资源文件夹来修复此问题。Rails 4和Heroku。你如何从样式表链接到字体?当它们位于app/assets/font中时,您甚至不必将其添加到资产加载路径以使其工作。您可以尝试heroku运行rake assets:precompile吗?不确定这是否会产生影响,但请尝试将资产url更改为字体url。请尝试在本地计算机上预编译资源,以查看通过运行ENV=production-rake-assets:precompile是否也包含字体。@fivedigit,我两次都做了,不确定到底是什么帮助了我,但这很有帮助,谢谢。我通过将字体从供应商/资源文件夹移动到根资源文件夹来修复此问题。Rails 4和Heroku。行。请解释你的解决方案。没问题@MartinZabel。已编辑。非常感谢您,将我的css文件更改为.scss,url=>字体url成功。请解释您的解决方案。没问题@MartinZabel。已编辑。非常感谢您,将我的css文件更改为.scss,url=>font-url成功。
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/
@font-face {
    font-family: 'Pe-icon-7-stroke';
    src:url(asset_path('Pe-icon-7-stroke.eot?-2irksn'));
    src:url( asset_path('Pe-icon-7-stroke.eot?#iefix-2irksn')) format('embedded-opentype'),
        font-url( asset_path('Pe-icon-7-stroke.woff?-2irksn')) format('woff'),
        font-url(asset_path('Pe-icon-7-stroke.ttf?-2irksn')) format('truetype'),
        font-url(asset_path('Pe-icon-7-stroke.svg?-2irksn#Pe-icon-7-stroke')) format('svg');
    font-weight: normal;
    font-style: normal;
}