Ho una configurazione di sottocartella/reverse proxy abbastanza tipica con Apache come reverse proxy.
Prima c’erano problemi con asset non sicuri, quindi ho forzato force_https in ENV. Ora, quando recupero asset come stylesheets/color_definitions_light_7_1_6cfae4de9c47a1b8ed3d5748018236d10ea9107e.css?__ws=site.com
Forse sto facendo qualcosa di stupido, ma ottengo questo:
ArgumentError (comparison of Time with String failed)
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/middleware/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'
Sembra che stylesheet_time sia una stringa, quindi cambiare quella riga in
if cache_time && stylesheet_time && stylesheet_time.to_date <= cache_time
risolve il problema. Non capisco come stia succedendo ora, dato che non vedo commit recenti che influenzino questo.
Quindi ecco come è impostato:
stylesheet_time = query.pick(:created_at)
Sembrerebbe che :created_at dovrebbe essere una data corretta. Qualche gemma sottostante potrebbe essere cambiata? E come non sarebbe stato rilevato nei test?
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
Sembra che sia possibile che to_date trasformi qualcosa che è truthy in una data nil, immagino.
No. Nemmeno questo funziona. Alla fine ho racchiuso la sezione in un begin/rescue/end.
Sono molto confuso su come questo possa interessare solo questa sottocartella/sito con reverse proxy.
Ho avuto lo stesso problema (anche durante l’utilizzo della configurazione della sottocartella). Dopo aver risolto un avviso di contenuto misto non correlato impostando l’impostazione force_https su true, il problema è scomparso…
@pfaffman Ho semplicemente eseguito il downgrade da una 3.1.0.beta3 a una 3.1.0.beta2, tutto è andato liscio e ora funziona perfettamente come dovrebbe.
Non ho abbastanza esperienza con Discourse per verificare cosa è andato storto o per segnalare un bug, specialmente su un’installazione non supportata.