Envoyer plusieurs chemins vers un seul itinéraire sans fonction de redirection

StackOverflow https://stackoverflow.com//questions/25020463

  •  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 ?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top