Rails 5 - 生产环境中未加载供应商资产(仅限字体)

Rails 5 - vendor assets are not loaded on production (fonts only)

它在开发中工作得很好,但在生产中却不行。它没有找到以下文件:

/assets/fontello.woff
/assets/fontello.ttf

设置如下:

  1. 字体文件:

  1. assets.rb

    Rails.application.config.assets.paths << Rails.root.join('app', 'vendor', 'assets', 'fonts')
    Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
    
  2. fontello.css

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

正如我所说,开发中一切正常。我尝试了很多东西。例如:

  1. 移动 public 文件夹中的字体(因为我的图像已加载)
  2. assets.rb中添加以下行:

    Rails.application.config.assets.precompile += [/^[-_a-zA-Z0-9]*\..*/]
    

但没有任何效果。

你能推荐其他尝试的方法吗?

ls public/assets 在生产中输出什么?

您的文件可能带有摘要(例如 fontello-XXXX.ttf)。在这种情况下,您必须在 sass(而不是 css)中使用 font helpers - 例如。在您的 font-family 版块中:src:font-url('fontello.ttf')