NextJS развернут в Vercel: страница 404 не найдена

#next.js #vercel

#next.js #vercel

Вопрос:

У меня есть приложение NextJS без встроенного API, которое я хочу развернуть в Vercel. Он отлично работает, когда я запускаю его локально yarn run dev , и я также могу собрать его yarn run build без каких-либо ошибок. Однако, когда я развертываю его в Vercel, я получаю 404 Error .

Вот моя структура папок:

 app/
  - components
  - pages
    - editor
      - [id].tsx
    ...tsx
  - public
  - utils
    - db
      api.ts
 

Я использую NextJS 10.0.3.

Вот ссылка на развернутое приложение.

У меня нет файла конфигурации nextjs. Я предполагаю, что ошибка вызвана динамическим маршрутом, но я не могу найти свою ошибку. Кроме того, при развертывании приложения не работает ни одна страница, в отличие от только динамической страницы.

У вас есть указания, где искать дальше?

РЕДАКТИРОВАТЬ 1:
Вот ссылка на репозиторий GitHub.

РЕДАКТИРОВАТЬ 2: я обнаружил проблему, но не знаю, как ее исправить.

Вот как выглядит мой вывод сборки на Vercel: введите описание изображения здесь

Вот как это должно выглядеть на Vercel: введите описание изображения здесь

Не уверен, почему отсутствует вся _next папка.

Комментарии:

1. можете ли вы показать нам свой код?

2. добавлена ссылка на репозиторий GitHub

Ответ №1:

У меня только что была такая же проблема. У меня есть следующее приложение в подкаталоге. Я думаю, что это может быть причиной некоторых проблем.

То, что сработало для меня, было.

  • Убедитесь, что выбрали правильный подкаталог. На моем был маленький значок Next Js.
  • Предустановка фреймворка должна быть установлена на Next.js .

Комментарии:

1. Сработало для меня! Обновил «Корневой каталог» моего проекта на Vercel, и он снова заработал.

Ответ №2:

Перейдите в настройки проекта

Измените предустановку фреймворка с Other на Next.js

Повторно разверните проект.

Ответ №3:

Отредактировано

Попробуйте выполнить развертывание с помощью now --prod --force --force Флаг очистит ваш кеш сборки (в рабочей среде) и принудительно произведет запуск. Если все еще не работает, обязательно добавьте now.json

Комментарии:

1. Я использую интеграцию Vercel с Github для развертывания. Я думаю, что он создает его с нуля при каждом развертывании. Я только что сравнил его с другими проектами, которые я успешно развернул, и с ними я не предоставил now.json. Поэтому я сомневаюсь, что это необходимо.

2. @siva попробуйте добавить now.json. Вот небольшая справка => docs-git-update-lambda-serverless-function.zeit.now.sh/docs/v2 /…

3. @siva могу ли я попытаться развернуть ваше приложение?

4. конечно! Любая помощь приветствуется!

Ответ №4:

Также не забудьте выбрать Next.js как предустановленный фреймворк (а не что-то другое). Вы можете найти это в настройках проекта и в настройках сборки и разработки. Подробнее здесь: https://vercel.com/docs/concepts/deployments/build-step

Комментарии:

1. Это то, что вызвало это для меня — не уверен, почему оно изменилось с Next.js но это произошло.

Ответ №5:

Моя проблема заключалась в том, что я сначала попытался развернуть Vercel через команду. Когда я создал новый проект Vercel под своей индивидуальной учетной записью Vercel и развернул тот же код, это сработало! Я надеюсь, что это сэкономит кому-то еще время, потому что я только что потерял 3 часа, пытаясь найти это. Я использую Next.js как хорошо.

Если вы пытаетесь выполнить развертывание через команду, вам может потребоваться сначала настроить идентификатор команды в вашем vercel.json, например

 {
  "currentTeam": "team_ofwUZockJlL53hINUGCc1ONW"
}
 

ссылка: https://vercel.com/docs/configuration#global/config-json/current-team