【问题标题】:How can I get the Rails 5.2 asset pipeline to use relative paths for fonts/images如何让 Rails 5.2 资产管道使用字体/图像的相对路径
【发布时间】:2018-06-27 16:36:37
【问题描述】:

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

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

当编译而不是

/assets/fonts/foo.wott

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

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

【问题讨论】:

  • src: url(asset_path('/fonts/foo.wott'))

标签: ruby-on-rails asset-pipeline ruby-on-rails-5.2


【解决方案1】:

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

  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

【讨论】:

  • 谢谢,这有很大帮助,尽管事实证明它是在我需要 stage 时使用 prod 编译资产...最后我需要为每个 docker 映像编译资产两次,这样映像就会便携。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多