У меня довольно типичная настройка с подпапкой/реверс-прокси с использованием Apache в качестве реверс-прокси.
Сначала возникли проблемы с небезопасными ресурсами, поэтому я установил переменную окружения force_https. Теперь при запросе таких ресурсов, как stylesheets/color_definitions_light_7_1_6cfae4de9c47a1b8ed3d5748018236d10ea9107e.css?__ws=site.com,
Возможно, я делаю что-то глупое, но получаю следующую ошибку:
ArgumentError (сравнение объекта Time со строкой не удалось)
app/controllers/stylesheets_controller.rb:66:in `<='
app/controllers/stylesheets_controller.rb:66:in `show_resource'
app/controllers/stylesheets_controller.rb:19:in `show'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
переменная stylesheet_time является строкой, поэтому изменение этой строки на
if cache_time && stylesheet_time && stylesheet_time.to_date <= cache_time
решает проблему. Я не понимаю, почему это происходит сейчас, так как я не вижу никаких недавних коммитов, влияющих на это.
Вот как это установлено:
stylesheet_time = query.pick(:created_at)
Казалось бы, что :created_at должен быть корректной датой. Возможно, изменилась какая-то базовая библиотека (gem)? И как это не было выявлено в тестах?
if !cache_time.to_date.nil? && !stylesheet_time.to_date.nil?
if (stylesheet_time.to_date <= cache_time.to_date)
return render body: nil, status: 304
end
end
Кажется, возможно, что to_date превращает что-то истинное в nil-дату, полагаю.
Нет. Это тоже не работает. В итоге я обернул этот блок в begin/rescue/end.
Я очень смущён тем, как это может влиять только на эту подпапку/сайт с обратным прокси.
У меня была та же проблема (также при использовании настройки подпапки). После устранения предупреждения о смешанном контенте, не связанного с этим, путем установки параметра force_https в значение true, проблема исчезла…
У меня возникла точно такая же проблема с NGINX вместо Apache в качестве обратного прокси.
Вам удалось найти решение?
Кстати, ошибка возникает только в десктопной версии, с мобильной версией всё работает без проблем.
Я обошёл это, отключив буферизацию на обратном прокси.
@pfaffman Я просто откатился с версии 3.1.0.beta3 до 3.1.0.beta2, всё прошло гладко, и теперь всё работает как положено.
У меня недостаточно опыта работы с Discourse, чтобы проверить, что пошло не так, или сообщить об ошибке, особенно в случае установки, не поддерживаемой официально.