не конфликтовали между собой за slug?
Я наверное поясню, что имею ввиду. Есть страница с products и страница сервиса. если они находятся на одном уровне url, всегда отображается страница сервиса, он не находит индентификатор по слагу и выдает 404, хотя такой слаг есть в products
Тут конфликт не тейлора, а роутинга. Ссылки должны быть уникальными на основе regexp регулярки. В вашем случае /:category*/:slug? конфликтует с /:slug, так как по факту запрос фактический может относиться и к первой странице и ко второй странице, между ними разницы нет и будет выбрана первая которая подпадет под шаблон. Лучше выделить их в уникальные адреса. Например /catalog/:category*/:slug и /service/:slug
а если надо сделать и категории и сервисы на первом уровне?
Это и без роутинга сложно, надо четко понимать к чему именно относиться страница. А в данном случае wildcard.
Окей, спасибо, буду думать, что с этим делать
Тут основная проблема в wildcard… если бы :slug у категории был бы обязательным, то в целом regexp регулярно были бы разными и страницы тоже по разным адресам открывались и то не факт. Но у вас получается что :slug в первом случае не обязателен, при этом wildcard для :category*, что по факту позволяет прогнать под эту регулярку практический все адреса сайта.
да, до этого было без wildcard, все работало
Обсуждают сегодня