Bonjour,
J'ai un site sous Django qui utilise beaucoup les redirections (en particulier pour ajouter le préfixe de la langue à l'URL) et les ancres (pour une FAQ c'est pratique pour arriver au bon endroit dans la page).
Et là je m'aperçois que Safari/Webkit (contrairement aux autres navigateurs populaires) perd l'ancre dans le cas d'une redirection :
https://bugs.webkit.org/show_bug.cgi?id=24175
Jusqu'ici le comportement des ancres dans le cas d'une redirection n'était pas bien défini. Cela est en train de changer comme bien décrit ici :
http://stackoverflow.com/questions/2286402/url-fragment-and-302-redirects
Cela m'étonne un peu de ne pas avoir plus de personnes ayant ce problème (à moins que les redirections ou les ancres soient moins utilisés que ce que je pensais).
En attendant que Webkit soit changé (ce qui peut prendre des années), j'hésite un peu sur la solution à adopter pour contourner le problème.
J'ai beau y penser, je ne trouve que des hacks immondes.
Par exemple au lieu d'avoir example.com/index#toto je peux mettre example.com/index?anchor=toto#toto et je bidouille après avec la redirection dans Django pour ajouter l'ancre mais je trouve cela vraiment très très moche (en plus pas facile d'intervenir directement sur la redirection pour ajouter le préfixe de langue):
Est-ce qu'un des gurus qui fréquente ce forum pourrait m'indiquer comment résoudre élégamment ce problème ?
Merci !
# contourner le probleme
Posté par NeoX . Évalué à 2.
faire une redirection qui contient l'ancre.
ex :
mapage/monparagraphe/fr -> mapage?pays=fr#monparagraphe
[^] # Re: contourner le probleme
Posté par SaintGermain . Évalué à 1.
Merci mais je ne suis pas sûr d'avoir compris la différence avec ce que je proposais (example.com/index?anchor=toto#toto) ?
[^] # Re: contourner le probleme
Posté par SaintGermain . Évalué à 1.
Pour être clair :
Pour cela pour l'instant je ne vois pas comment je peux faire sans changer l'URL avant redirection :
[^] # Re: contourner le probleme
Posté par NeoX . Évalué à 2.
parce que normalement, si mes souvenirs sont bons (j'ai pas fais beaucoup de django)
django doit te reecrire les URLs qui vont etre affichées dans le navigateur,
ton client doit alors recevoir
example.com/index/fr/toto
il clique dessus, django traduit l'URL en template, action, view, traitement,
et reconstruit la reponse.
[^] # Re: contourner le probleme
Posté par SaintGermain . Évalué à 1.
Je vois ce que tu veux dire mais je vais avoir trop d'effets de bord avec cette technique.
Si je commence à mettre les ancres dans le chemin même de l'URL, cela va être la galère de construire la regexp pour repérer ce qui est ancre et ce qui est chemin.
Par exemple si j'ai une page example.com/fr/index/titi et une ancre titi, ta solution va provoquer un conflit.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.