Белая страница, проблемы с маршрутизацией и отсутствие переменных среды в браузереJavascript

Форум по Javascript
Ответить
Anonymous
 Белая страница, проблемы с маршрутизацией и отсутствие переменных среды в браузере

Сообщение Anonymous »

Я работаю над проектом Next.js 14, который отлично работает в режиме разработки (

Код: Выделить всё

next dev). Однако после создания проекта (next build
) и запускаем его (

Код: Выделить всё

next start
или как отдельная версия с узлом server.js), возникает ряд проблем, которые я не могу решить.
Настройка:
< ul>
[*]Next.js 14
[*]Автономная версия начинается с узла .next/standalone/server.js
< li>Переменные среды передаются как во время сборки, так и во время сборки. время выполнения, например:

Код: Выделить всё

NEXT_PUBLIC_API_URL=http://localhost:3000 HOSTNAME="0.0.0.0" node server.js
[*] Проект существует с следующего.js 12, и моя задача состояла в code> тоже, но здесь, похоже, это не проблема. Как уже упоминалось, он работает в режиме разработки.

Проблемы:
  • Белая главная страница:
    • Главная страница ( или /en) показывает полностью белый экран, а HTML-код отображается неправильно (в инспекторе видны только теги ).
      < li>В консоли браузера появляются следующие ошибки:
    • Код: Выделить всё

      Specify NEXT_PUBLIC_API_URL in your .env file
      (хотя переменная устанавливается как во время выполнения, так и во время сборки).
    • Файлы JavaScript (

      Код: Выделить всё

      .next/static
      ) отображаются правильно, но страница не отображается.

    < /li>
  • Проблемы с маршрутизацией:
    • Когда я посещаю /de/someinvalidroute, я получаю перенаправление ошибка цикла:
      "Страница не перенаправляется должным образом".
    • Для например, маршрут /de/someinvalidroute перенаправляет на /de/de, затем на /de/de/de и так далее.
    • Автономная установка:

      Я собираю проект локально, используя следующую сборку< /code>, а затем скопируйте содержимое папки .next/standalone в папку сервер. Сервер запускаю с помощью узла server.js.
    • Все необходимые файлы (

      Код: Выделить всё

      .next/static
      , public и т. д.) копируются правильно, а переменные среды установлены.

    Я пробовал:
  • Очистил кеш сборки и пересобрал:

    Код: Выделить всё

    rm -rf .next
    next build
    
  • Задайте переменные среды во время сборки:

    Код: Выделить всё

    NEXT_PUBLIC_API_URL=http://localhost:3000 next build
    
  • Скорректированное промежуточное ПО:
    • Я настроил next-intl< /code> промежуточное программное обеспечение для исключения статических файлов:

      Код: Выделить всё

      export const config = {
      matcher: ['/((?!_next/static|_next/image|favicon.ico|images|api).*)'],
      };
      
  • Локальная отладка:
    < ul>
    Я создал простую тестовую страницу (

    Код: Выделить всё

    pages/test.js
    ), который не работает:

    Код: Выделить всё

    export default function Test() {
    return Test page is working!;
    }
    
  • Я не могу перейти ни на какую другую страницу, кроме главной страницы в /de или /en, иначе меня перенаправят .
  • Очистил кеш браузера:
    • Проверено в режиме инкогнито, кеш браузера очищен, но белые страницы и ошибки консоли сохраняются.
  • Использование стандартного вывода сборки, а не автономного:
    • Я уже пытался собрать проект без опции автономного вывода. Тоже не работает.
Мои вопросы:
  • Почему переменные NEXT_PUBLIC_* не распознаются браузером, хотя они устанавливаются как во время сборки, так и во время выполнения?
  • Как могу ли я исправить цикл перенаправления (

    Код: Выделить всё

    /de/de/de
    ) проблема?
  • Почему главная страница остается пустой, хотя HTML-код отображается правильно?
  • Известны ли проблемы с Next.js 14, next-intl или автономный режим, который может быть здесь уместен?


Подробнее здесь: https://stackoverflow.com/questions/793 ... in-browser
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»