Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Параметр configOptions объединен в один объект настроек; прокси встроен в intlayer()"v9.0.025.06.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
intlayerProxy
intlayerProxy: это плагин Vite, который регистрирует промежуточное ПО (middleware) локализации роутинга для любой среды: dev-сервера, preview-сервера и продакшен SSR (Nitro / TanStack Start).
Начиная с Intlayer v9intlayerProxyавтоматически включается в основной плагинintlayer()и активирован по умолчанию с помощью настройкиrouting.enableProxy: true. Вам нужно регистрировать его отдельно только в том случае, если вам нужен низкоуровневый контроль или если вы используете его за пределами стандартной конфигурацииintlayer().
Использование
В составе intlayer() (рекомендуется, v9+)
Передайте параметры proxy в основной плагин вместо отдельной регистрации intlayerProxy:
Копировать код в буфер обмена
Отдельно (при необходимости)
Копировать код в буфер обмена
Параметры
Копировать код в буфер обмена
Все параметры являются необязательными и передаются в виде единого объекта:
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Параметр | Тип | Описание |
|---|---|---|
ignore | (req: IncomingMessage) => boolean | Предикат, который исключает запросы из локализации роутинга. Верните true, чтобы пропустить запрос (например, для роутов API, health check-ов). |
configOptions | GetConfigurationOptions | Переопределения конфигурации Intlayer, передаваемые в getConfiguration(). Используйте, когда вам нужно, чтобы прокси читал конкретный конфигурационный файл или переопределял значения. |
Пример
Копировать код в буфер обмена
createIntlayerProxyHandler
createIntlayerProxyHandler создает независимый от фреймворка Node.js middleware (req, res, next), который содержит всю логику локализации роутинга. Это полезно в средах, где API плагинов Vite недоступен (например, на обычном сервере Node.js или в кастомном модуле Nitro).
Копировать код в буфер обмена
Продакшен SSR (TanStack Start / Nitro через h3)
Копировать код в буфер обмена
Поведение роутинга
Этот middleware дублирует логику роутинга из middleware next-intlayer и поддерживает все режимы роутинга Intlayer.
Режимы роутинга
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Режим | URL виден в браузере | Поведение |
|---|---|---|
prefix | /ru/about | По умолчанию. Префикс языка в URL. Язык по умолчанию перенаправляет на URL без префикса, если не активен prefix-all. |
prefix-all | /en/about, /ru/about | Все языки (включая язык по умолчанию) всегда имеют префикс в URL. |
no-prefix | /about | Нет языка в URL. Язык сохраняется только в cookies; перезапись URL происходит на внутреннем уровне. |
search-params | /about?locale=ru | Язык передается как query-параметр. Перенаправляет для добавления/обновления параметра locale, если он отсутствует или устарел. |
Приоритет определения
- Префикс пути URL (например,
/ru/about→ru). - Значение в cookie / localStorage (
intlayer-locale). - Заголовок
Accept-Language. defaultLocaleиз конфигурации.
Автоматический обход (Bypass)
Этот middleware всегда пропускает следующие запросы напрямую без обработки локали:
- Запросы, соответствующие предикату
ignore. /node_modules/**/@**: внутренние запросы Vite (@vite/,@fs/,@id/и т.д.)./_**: внутренние запросы сервера (__vite_ping,__manifestи т.д.).- Запросы, путь которых заканчивается расширением файла (статические файлы). Если в пути статического файла присутствует языковой префикс (например,
/ru/logo.png), он удаляется, чтобы файл мог быть отдан корректно.
Роутинг по доменам
Когда в вашей конфигурации Intlayer настроен параметр routing.domains, этот middleware обрабатывает роутинг языков между разными доменами:
- Запрос для
/zh/aboutна доменеintlayer.orgперенаправляется наhttps://intlayer.zh/about, когдаdomains.zh = "intlayer.zh". - Запрос к
intlayer.zh/aboutвнутренне переписывается в/zh/about, чтобы заполнился параметр маршрута[locale].
Защита от бесконечного редиректа
Этот middleware отслеживает количество перенаправлений для пары originalUrl → newUrl в скользящем 2-секундном окне. Более 10 перенаправлений в этом окне возвращают ошибку 500 с подробным описанием вместо бесконечного цикла.
Nitro / SSR в продакшене (автоматическое внедрение, v9+)
Когда intlayerProxy используется как плагин Vite, он содержит свойство .nitro. Плагин сборки nitro/vite считывает это свойство и помещает его в nitroConfig.modules, благодаря чему intlayerNitroHandler регистрируется как middleware сервера Nitro автоматически, для продакшен SSR не требуется ручная настройка.
Обработчик Nitro использует модель событий Web Fetch API h3 v2 (а не fromNodeMiddleware), поэтому он совместим со всеми пресетами Nitro: Node, Bun, Deno, edge runtimes.
Устаревшие алиасы
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Устаревший экспорт | Замена |
|---|---|
intlayerMiddleware | intlayerProxy |
intLayerMiddlewarePlugin | intlayerProxy |
