#reactjs #next.js
#reactjs #next.js
Вопрос:
У меня есть следующий URL:
/job/engineer_123456/edit/abcde
Теперь, когда я запускаю свой локальный сервер: npm run dev («next src /»), тогда, когда я перехожу по этой ссылке, она работает. Однако, когда я развертываю свой проект (в firebase), я получаю 404 с этого URL.
У меня такое чувство, что в маршрутизации есть конфликт, поскольку моя структура каталогов страниц NextJS выглядит так / задание находится в разделе страницы):
Может ли быть так, что по какой-то причине, когда я перехожу по этой ссылке, я собираюсь /job/[job].js
вместо /job/[job]/edit/[editId].js
Я действительно смущен, почему production показывает страницу 404, но локально она работает.
Комментарии:
1. а? какое это имеет отношение к этому?
Ответ №1:
Согласно документации:
Предопределенные маршруты имеют приоритет над динамическими маршрутами, а динамические маршруты — над всеми маршрутами. Взгляните на следующие примеры:
pages/post/create.js — Будет соответствовать / публиковать / создавать
pages/post/[pid].js — будет соответствовать /post/1 , /post/abc и т.д. Но не / post / create
pages/post/[…slug].js — будет соответствовать /post/1 / 2 , /post/a/b / c и т.д. Но не /post/create, /post/abc
* Страницы, которые статически оптимизированы с помощью автоматической статической оптимизации, будут удалены без предоставления параметров их маршрута, т.е. Запрос будет пустым объектом ({}).
После гидратации, Next.js вызовет обновление вашего приложения для предоставления параметров маршрута в объекте запроса.*
Итак, вам нужно иметь что-то вроде:
pages - folder
job - folder
[...slug] - folder
- index.js
edit - folder
- index.js
папка slug будет действовать как «шаблон» для всех маршрутов / job / [slug], которые будут иметь index.js а также страница редактирования
Комментарии:
1. Результаты затем в
Error: Catch-all must be the last part of the URL.
2. Извините, на самом деле, поскольку вам нужен идентификатор редакции , у вас должен быть […slug.js ] внутри вашей папки редактирования! Это перехватило бы все идентификаторы и index.js в идеале это была бы индексная страница со всеми объектами