#ruby #puma
Вопрос:
Я запускаю веб-сайт с использованием puma и ruby.
HTTPS настроен в nginx.
Иногда мы сталкиваемся с ошибкой, как показано на следующем рисунке. И, как ни странно, это решается перезапуском puma. Простой бег sudo systemctl restart puma
прояснит это.
Что не так с моей настройкой?
Почему он обслуживает содержимое в http? И почему это решается только перезапуском puma?
Эта ошибка возникает случайным образом. На прошлой неделе у нас его вообще не было, но на этой неделе уже четыре раза.
Любая помощь, которая поможет мне решить эту проблему навсегда, будет признательна.
Спасибо.
Правки, чтобы ответить на комментарии:
Ниже приведен код, который генерирует ссылки на таблицы стилей:
<%# stylesheet_link_tag 'application', media: 'all', protocol: :relative %>
<%# javascript_include_tag 'application', protocol: :relative %>
<%= stylesheet_link_tag 'application', controller_name, media: 'all', protocol: :relative %>
<% if session[:responsive].nil? || session[:responsive] == 1 %>
<%= stylesheet_link_tag "#{controller_name}_responsive", media: 'all', protocol: :relative %>
<% end %>
Просмотр источника во время возникновения ошибки показывает, что он http://
находится перед URL-адресом css. После перезапуска puma, это только //
без http:
этого:
Комментарии:
1. Как загружаются таблицы стилей в заголовок?
2. Кроме того, конфигурация nginx может быть полезной.
3. Я бы отладил код, в котором
<link rel="stylesheet"
он отображается. Похоже, с puma это не проблема, похоже, что отображаемый вами HTML начинает запрашивать таблицу стилей HTTP. Повторный запуск Puma, вероятно, сбросит состояние вашего приложения и временно устранит проблему, пока это состояние снова не испортится…4. @DennyMueller Я поместил код под своим вопросом. Есть что-нибудь, что я должен пересмотреть? Спасибо.
5. Это странная вещь. Итак, URL-адрес показывает что-то вроде
//www.foo.bar/style.css
? вы случайно неconfig.action_controller.asset_host
установили в своей конфигурации среды (например, production.rb)?