J’ai une configuration de sous-dossier/proxy inverse assez typique avec Apache comme proxy inverse.
Au début, il y avait des problèmes avec les ressources non sécurisées, j’ai donc forcé force_https dans ENV. Maintenant, lors de la récupération de ressources comme stylesheets/color_definitions_light_7_1_6cfae4de9c47a1b8ed3d5748018236d10ea9107e.css?__ws=site.com
Peut-être que je fais quelque chose de stupide, mais j’obtiens ceci :
ArgumentError (la comparaison de Time avec String a échoué)
app/controllers/stylesheets_controller.rb:66:in `\u003c='
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'
Eh bien, en regardant \n\ndiscourse/app/controllers/stylesheets_controller.rb at main · discourse/discourse · GitHub semble que stylesheet_time soit une chaîne de caractères, donc changer cette ligne en \n\n\n if cache_time && stylesheet_time && stylesheet_time.to_date <= cache_time\n\n\nrésout le problème. Je ne comprends pas comment cela se produit maintenant, car je ne vois aucun commit récent affectant cela.\n\nVoici donc comment c’est défini :\n\n stylesheet_time = query.pick(:created_at)\n\nIl semblerait que :created_at soit une date valide. Une gem sous-jacente aurait-elle pu changer ? Et comment cela n’aurait-il pas été détecté lors des tests ?
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
Il semble que to_date puisse transformer quelque chose de vrai en une date nulle, je suppose.
Non. Ça ne marche pas non plus. J’ai fini par encapsuler la section dans un begin/rescue/end.
Je suis très perplexe quant à la façon dont cela pourrait n’affecter que ce sous-dossier/site en reverse-proxy.
J’ai eu le même problème (également lors de l’utilisation de la configuration de sous-dossier). Après avoir corrigé un avertissement de contenu mixte sans rapport en définissant le paramètre force_https sur true, le problème a disparu…
J’ai exactement le même problème avec NGINX à la place d’Apache comme proxy inverse.
Avez-vous trouvé une solution ?
Au fait, cela n’a échoué qu’avec la version de bureau, aucun problème avec la version mobile.
Je l’ai contourné en désactivant la mise en mémoire tampon sur le proxy inverse.
@pfaffman J’ai simplement rétrogradé d’une version 3.1.0.beta3 à 3.1.0.beta2, tout s’est déroulé sans problème et fonctionne maintenant parfaitement comme il se doit.
Je ne suis pas assez expérimenté avec Discourse pour vérifier ce qui s’est mal passé ou signaler un bug, surtout sur une installation non prise en charge.
Mais si je peux être d’une quelconque aide, je serai ravi !