Envoyer plusieurs chemins vers un seul itinéraire sans fonction de redirection
-
21-12-2019 - |
Question
Je mets à jour mon site Web vers une application Meteor avec iron-router et je dois modifier mes URL.L'ancien système utilisait des noms de pages en majuscules comme celui-ci :
mysite.com/Contact
mais j'ai tout changé pour qu'il soit en minuscule :
mysite.com/contact
Cette route de contact n'est pas compliquée, elle est donc configurée comme ceci :
this.route('contact');
mais je veux le /Contact
URL à rediriger.Je sais que je pourrais faire ça :
this.route('Contact', {
onBeforeAction: function() {
Router.go('contact');
}
});
mais c'est tellement plus compliqué.Je préférerais faire quelque chose comme ceci :
this.route('contact', {
path: ['/contact', '/Contact']
});
où l'itinéraire est simplement mappé sur plusieurs chemins.
Existe-t-il une fonctionnalité comme celle-ci ?Ou est-ce que mon onBeforeAction
le meilleur que je vais obtenir ?
La solution
https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#dynamic-path-segments
Vous pouvez utiliser une expression régulière pour votre segment de chemin (voir le dernier exemple dans le lien Segments de chemin dynamiques).
Votre chemin serait :
this.route('contact', {
path: /contact/i
});
Où le « i » après la barre oblique est le modificateur d'expression régulière qui ne respecte pas la casse, vous permettant d'accepter toute variation de « contact » (que ce soit cOntact, Contact ou conTACT).
Voir http://www.w3schools.com/jsref/jsref_regexp_i.asp pour plus de détails sur le modificateur RegEx.