Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика 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 |
