Envíe múltiples rutas a una ruta sin función de redireccionamiento
-
21-12-2019 - |
Pregunta
Estoy actualizando mi sitio web a una aplicación Meteor con iron-router y necesito cambiar mis URL.El antiguo esquema tenía nombres de páginas en mayúscula como este:
mysite.com/Contact
pero he cambiado todo para que esté en minúsculas:
mysite.com/contact
Esa ruta de contacto no es complicada, por lo que se configura así:
this.route('contact');
pero quiero el /Contact
URL a ser redirigido.Sé que podría hacer esto:
this.route('Contact', {
onBeforeAction: function() {
Router.go('contact');
}
});
pero es mucho más complicado.Preferiría hacer algo como esto:
this.route('contact', {
path: ['/contact', '/Contact']
});
donde la ruta simplemente se asigna a múltiples caminos.
¿Existe una característica como esta?¿O es mi onBeforeAction
¿Lo mejor que voy a conseguir?
Solución
https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#dynamic-path-segments
Puede utilizar una expresión regular para su segmento de ruta (consulte el último ejemplo en el enlace Segmentos de ruta dinámica).
Tu camino sería:
this.route('contact', {
path: /contact/i
});
Donde la 'i' después de la barra diagonal es el modificador de expresión regular que no distingue entre mayúsculas y minúsculas, lo que le permite aceptar cualquier variación de 'contacto' (ya sea contacto, contacto o contacto).
Ver http://www.w3schools.com/jsref/jsref_regexp_i.asp para obtener detalles sobre el modificador RegEx.