如何让 Rails 5.2 资产管道使用 fonts/images 的相对路径

How can I get the Rails 5.2 asset pipeline to use relative paths for fonts/images

我的 rails 资产管道正在编译资产以供使用

https://accounts.example.com/assets/fonts/foo.wott

编译时而不是

/assets/fonts/foo.wott

因此,当我在我的测试域上时,我遇到了 CORS 问题,并且资产丢失了,因为它不存在。除此之外,我正在尝试将资产移动到他们的 CDN 上,因此将我的 asset_host 配置为 cdn.example.com,我希望资产会使用它。

我想知道我应该寻找哪些方法可能会压倒我的意图。

默认使用相对路径。有几个地方您可以设置不同的主机:

  1. 在您的配置文件中(例如 /config/environments/production.rbconfig/application.rb),您可以设置 config.action_controller.asset_hostRails.application.routes.default_url_options(尽管后者主要用于链接)。
  2. 同样在配置文件中,您可以设置 config.action_mailer.default_url_options 为 ActionMailer 视图助手设置主机。
  3. config/initializers/application_controller_renderer.rb 中,您可以为连接到所有控制器的渲染器设置默认值 http_host