etalab / catalogage-donnees

Outil de catalogage de données développé par Etalab (service en production sur catalogue.data.gouv.fr)
https://catalogue.data.gouv.fr
GNU Affero General Public License v3.0
14 stars 3 forks source link

La navigation client SvelteKit dysfonctionne sur une majorité de pages #110

Closed florimondmanca closed 2 years ago

florimondmanca commented 2 years ago

cc @magopian

Description du bug

Lors d'une navigation (clic sur un <a>), au lieu de ne changer que ce qui change dans la nouvelle page, SvelteKit semble généralement recharger l'ensemble de la page.

Comportement attendu

La navigation client de SvelteKit est sensée modifier seulement le contenu du <slot> dans le __layout.svelte.

Ainsi, dans la console web par exemple, on devrait observer un supplément de requêtes HTTP lors d'un changement de page.

Comportement réel

La page est comme entièrement rechargée. La console web se vide puis l'ensemble des ressources sont à nouveau récupérées, le DSFR charge, etc.

La seule exception est le lien / dans le header.

Pour reproduire

Lancer l'app avec make serve, puis :

On peut constater le même comportement avec make build && make serve-dist.

Pistes de résolution

TODO

florimondmanca commented 2 years ago

@magopian Hello, est-ce que tu as remarqué ceci aussi ? Pour au moins confirmer que ce n'est pas que de mon côté.

En essayant de regarder staging je constate que staging est HS...

magopian commented 2 years ago

J'ai l'impression que c'est que le lien "Contribuer" dans l'entête qui a ce comportement ? Si je vais sur une fiche de données, puis si je propose une modification, et/ou que je vais sur la page d'accueil, dans tous ces cas là le comportement attendu est respecté (la console n'est pas effacée, il n'y a que quelques requêtes supplémentaires affichées dans l'onglet réseau des devtools).

magopian commented 2 years ago

Le lien "Rechercher" dans l'entête a le même soucis ...

magopian commented 2 years ago

Ok trouvé, le soucis c'est l'attribut target="_self"qu'il faut supprimer.