Отправка нескольких путей на один маршрут без функции перенаправления
-
21-12-2019 - |
Вопрос
Я обновляю свой веб-сайт до приложения Meteor с помощью iron-router, и мне нужно изменить мои URL-адреса.В старой схеме названия страниц были написаны заглавными буквами следующим образом:
mysite.com/Contact
но я изменил все на строчные буквы:
mysite.com/contact
Этот маршрут контакта несложен, поэтому он настроен следующим образом:
this.route('contact');
но я хочу, чтобы /Contact
url-адрес для перенаправления.Я знаю, что мог бы просто сделать это:
this.route('Contact', {
onBeforeAction: function() {
Router.go('contact');
}
});
но все гораздо запутаннее.Я бы предпочел сделать что-то вроде этого:
this.route('contact', {
path: ['/contact', '/Contact']
});
где маршрут просто сопоставляется с несколькими путями.
Есть ли подобная функция?Или это мой onBeforeAction
лучшее, что я могу получить?
Решение
https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#dynamic-path-segments
Вы можете использовать регулярное выражение для вашего сегмента пути (смотрите последний пример по ссылке Динамические сегменты пути).
Ваш путь был бы:
this.route('contact', {
path: /contact/i
});
Где "i" после косой черты - это модификатор регулярного выражения, который не учитывает регистр, позволяя вам принимать любые варианты "контакта" (будь то "Контакт", "Контактное лицо" или "Контактная информация").
Видеть http://www.w3schools.com/jsref/jsref_regexp_i.asp подробнее о модификаторе регулярных выражений.