Rails 5 - 生产环境中未加载供应商资产(仅限字体)
Rails 5 - vendor assets are not loaded on production (fonts only)
它在开发中工作得很好,但在生产中却不行。它没有找到以下文件:
/assets/fontello.woff
/assets/fontello.ttf
设置如下:
- 字体文件:
assets.rb
Rails.application.config.assets.paths << Rails.root.join('app', 'vendor', 'assets', 'fonts')
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
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;
}
正如我所说,开发中一切正常。我尝试了很多东西。例如:
- 移动 public 文件夹中的字体(因为我的图像已加载)
在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')
它在开发中工作得很好,但在生产中却不行。它没有找到以下文件:
/assets/fontello.woff
/assets/fontello.ttf
设置如下:
- 字体文件:
assets.rb
Rails.application.config.assets.paths << Rails.root.join('app', 'vendor', 'assets', 'fonts') Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
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; }
正如我所说,开发中一切正常。我尝试了很多东西。例如:
- 移动 public 文件夹中的字体(因为我的图像已加载)
在
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')