Как я могу заставить конвейер ресурсов Rails 5.2 использовать относительные пути для шрифтов/изображений

Мой конвейер ресурсов rails компилирует ресурсы для использования

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

при компиляции вместо

/активы/шрифты/foo.wott

Поэтому, когда я нахожусь в своем тестовом домене, у меня возникают проблемы с CORS, и актив отсутствует, поскольку он не существует. В дополнение к этому я пытаюсь переместить активы в их CDN, поэтому я настроил свой assets_host на cdn.example.com, который, как я надеялся, будет использовать активы.

Я хотел бы знать, какие методы я должен искать, которые могли бы переопределить мои намерения.


person David Roy    schedule 27.06.2018    source источник


Ответы (1)


По умолчанию используются относительные пути. Есть несколько мест, где вы можете установить другой хост:

  1. В ваших конфигурационных файлах (например, /config/environments/production.rb или config/application.rb) вы можете установить config.action_controller.asset_host или Rails.application.routes.default_url_options (хотя последний в основном используется в ссылках).
  2. Также в конфигурационных файлах вы можете установить config.action_mailer.default_url_options, который устанавливает хост для хелперов представлений ActionMailer.
  3. В config/initializers/application_controller_renderer.rb вы можете установить http_host по умолчанию для рендерера, подключенного ко всем вашим контроллерам.
person coreyward    schedule 27.06.2018
comment
Спасибо, это очень помогло, хотя оказалось, что это компиляция ресурсов с использованием prod, когда мне нужна была стадия... ну, в конце концов мне нужно было дважды скомпилировать ресурсы для каждого образа докера, чтобы образ был переносимым. - person David Roy; 28.06.2018