NextJS не видит новые файлы в public

Если добавить изображдения в public, после build и start проекта, то я не могу обратиться к файлам, пока не пересоберу проект. Как это решается?


Ответы (1 шт):

Автор решения: ауц dwedwf

В Next.js статические файлы, такие как изображения, помещенные в папку public, должны быть доступными без необходимости пересборки проекта при запуске в режиме разработки. Однако, когда вы используете команды build и start для создания и запуска оптимизированной продакшн-версии вашего приложения, все файлы из public копируются в папку .next во время сборки. Это означает, что после сборки добавление новых файлов в папку public напрямую не отразится в уже собранном приложении, так как они не были включены в процесс сборки.

Решения:

  • Пересборка проекта: Простейшее решение — пересобрать и перезапустить проект после добавления новых файлов в public. Это гарантирует, что новые файлы будут включены в сборку.
  • Использование внешнего сервера для статических файлов: Если вам необходимо динамически добавлять новые статические файлы без пересборки, рассмотрите возможность размещения этих файлов на внешнем сервере статических файлов или CDN. Вы можете ссылаться на эти файлы в вашем приложении Next.js, используя полные URL-адреса.
  • Разработка кастомного сервера: Если вы используете кастомный сервер с Next.js (например, Express.js), вы можете настроить маршрутизацию таким образом, чтобы обрабатывать запросы к новым статическим файлам в папке public или любой другой директории вне процесса сборки Next.js. Это может включать в себя настройку статического промежуточного обработчика для обслуживания этих файлов.
  • Использование разработки в режиме Hot Reload: В режиме разработки (next dev) Next.js автоматически обнаруживает добавление новых файлов в папку public и делает их доступными без перезапуска сервера. Это полезно во время разработки, но не применимо к продакшн-среде.
  • Избегайте изменений в public в продакшне: Если возможно, старайтесь не вносить изменения в содержимое папки public после сборки для продакшна. Лучше всего вносить все необходимые изменения до сборки и перезапуска.
→ Ссылка