Sembra accadere solo sui dispositivi iOS: a volte i link esterni si aprono nella stessa finestra ma il CSS non viene caricato. Strano e non riesco nemmeno a riprodurlo!
Sembra così:
Ho anche trovato segnalazioni su altri forum pubblici di discourse:
Dato che è stato segnalato e corretto in precedenza, mi chiedo se possa essere correlato a un tema o a un componente del tema, forse? Apprezzerei qualsiasi aiuto.
no semplicemente perché ho visto questo comportamento alcune volte nelle ultime due settimane, solo sul mio iPhone e ho sentito lo stesso da parte degli utenti ma non riesco a riprodurlo, sembra casuale.
Sembra essere lo stesso comportamento: si verifica quando si apre un sito web esterno da discourse. Ad esempio, aprendo https://discourse.org/ da meta.discourse.org.
L’ho pensato anch’io, tuttavia sembra accadere solo quando si fa clic dal forum e poiché ho trovato altri post ho pensato che forse qualcuno potrebbe fare luce su questo - potrebbe essere un problema di iOS. Sarebbe stato più facile se non caricasse il CSS ogni volta e solo a volte
@Lilly Mi chiedo se potresti condividere come discourse gestisce href e se c’è un modo particolare per iOS? Questo sembra essere un problema relativo a Safari, ma si verifica solo dall’interno di discourse verso un altro dominio. Quel dominio non viene caricato come se discourse stesse cercando di caricare localmente l’html della pagina richiesta.
Abbiamo già provato a forzare la policy no-cache e a giocare con il prefisso www. Nulla sembra funzionare. È esattamente il problema menzionato qui:
Lì il sito principale veniva caricato dal loro community.URL.com, causando lo stesso caricamento parziale della pagina.
Da mesi gli utenti iPhone segnalano che, quando cliccano sui link dal sottodominio (discourse) al sito principale, la pagina potrebbe non caricare CSS o JS ma solo HTML, rendendola inutilizzabile.
Questo non accade ogni singola volta, ma abbastanza frequentemente da richiedere agli utenti di ricaricare la pagina per risolvere il problema. Ricaricando, in realtà rimangono su discourse, quindi devono cliccare di nuovo.
Guardando il file access.log di nginx, possiamo vedere che per qualche motivo discourse tenta di recuperare i file del dominio principale invece dell’indice del dominio principale.
Inutile dire che discourse non ha questi file, quindi la pagina risulta corrotta.
Questo è da “access.log” di nginx:
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/cart/cart.js?v=0.32 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 429 230 "https://here.domain.com/c/testing/17" - 0.000 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/footer_and_header.css?v=1.13 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7963 "https://here.domain.com/c/testing/17" 0.019 0.019 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/common/jssocials.css?v=0.03 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7968 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/lightslider.js?v=0.14 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7980 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/jssocials.js HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7978 "https://here.domain.com/c/testing/17" 0.034 0.034 "-" "-" "-" "-" "-" "-" "-"
Abbiamo provato a usare sia link href che window.reload(), ma il problema rimane lo stesso. Ancora una volta, accade solo occasionalmente e solo per gli utenti iPhone.
Avete idee sul perché succede e come si può risolvere?
Abbiamo osservato alcuni strani problemi come questo. Per quanto ne sappiamo, deve essere un bug in Safari/WebKit. Non dovrebbe essere possibile che si verifichi questo tipo di rendering di “sito misto”. Abbiamo segnalato un problema a WebKit. (cc @pmusaraj)
Se qualcuno riesce a trovare un modo coerente per riprodurre il problema, ciò aiuterebbe quasi certamente a dare priorità al bug.
Qualche idea per una soluzione alternativa per i link esterni?
Sia HREF HTML che window.replace JS si comportano allo stesso modo
(Sono sicuro che Avanti/Indietro siano quasi impossibili da sovrascrivere)
Purtroppo, non ho idee per una soluzione alternativa. Ho provato a de-registrare i service worker nel caso fosse quello il motivo del conflitto, ma non ha avuto alcun effetto.
Attualmente sono passato a Safari Technology Preview localmente. Sembra non avere il problema, il che potrebbe indicare che è stato risolto nelle versioni più recenti di Webkit. Oppure, significa che un browser pulito con una cache pulita non presenta i problemi… difficile da dire.
Monitoreremo questo aspetto e continueremo a cercare soluzioni, il problema colpisce diverse persone nel team di Discourse e su diverse piattaforme (macOS, iOS, app DiscourseHub). A parte trovare una soluzione magica, però, il meglio che possiamo fare qui è seguire il bug report di Webkit e aggiungere ulteriori informazioni lì, se pertinenti/utili.