) отсутствует в исходящих запросах при запуске в моей тестовой среде Kubernetes, хотя тот же самый код прекрасно работает в Локальной разработке.
Почему заголовки ky.create удаляются или игнорируются именно в производственной среде Next.js в Kubernetes, в то время как заголовки и перехватчики .extend() продолжают работать? Существует ли известный конфликт между патчем глобальной выборки Next.js и настройками экземпляра ky по умолчанию? Настройка:
Платформа: Next.js (с использованием App Router и действий сервера)
Кэширование: Использование nextjs-cache с томом KubernetesemptyDir.
Код: У меня есть централизованная конфигурация клиента с использованием ky.create и асинхронная функция getClient, которая расширяет это с заголовками, специфичными для сеанса.
Мы используем nextjs-cache. Я подозреваю, что запрос может быть перехвачен или изменен внутренним исправлением выборки Next.js в рабочей среде.
Поскольку он работает локально (режим разработки), но не работает в контейнере производственной сборки, это похоже на проблему промежуточного программного обеспечения или оптимизации, специфичной для среды.
Том пустойDir используется для кэширования, но поскольку это POST/PUT (где Content-Type имеет значение), он не должен выдавать устаревший кэшированный ответ.
У меня возникла проблема, когда определенный заголовок ([code]Content-Type: application/json[/code]) отсутствует в исходящих запросах при запуске в моей [b]тестовой среде Kubernetes[/b], хотя тот же самый код прекрасно работает в [b]Локальной разработке[/b]. Почему заголовки ky.create удаляются или игнорируются именно в производственной среде Next.js в Kubernetes, в то время как заголовки и перехватчики .extend() продолжают работать? Существует ли известный конфликт между патчем глобальной выборки Next.js и настройками экземпляра ky по умолчанию? [b]Настройка:[/b] [list] [*][b]Платформа:[/b] Next.js (с использованием App Router и действий сервера)
[*][b]Библиотека:[/b] ky для выборка
[*][b]Окружающая среда:[/b] Рабочая сборка ([code]NODE_ENV: production[/code]), работающий в Kubernetes.
[*][b]Кэширование:[/b] Использование nextjs-cache с томом KubernetesemptyDir.
[/list] [b]Код:[/b] У меня есть централизованная конфигурация клиента с использованием ky.create и асинхронная функция getClient, которая расширяет это с заголовками, специфичными для сеанса. [code]'use server'
import ky from 'ky' import { getCurrentUser } from '@/lib/server/session' import { getCurrentTenantId } from '@/lib/server/tenant' import { getAuthToken } from '@/services/auth/tokens'
return defaultClient.extend({ headers: { 'XX-Requester': user?.userId, 'XX-Tenant': tenantId, }, }) } [/code] [b]Проблема:[/b] [list] [*][b]Локально:[/b] Запрос, отправленный в API, включает Content-Type: application/json и все пользовательские заголовки XX-*.
[*][b]Test/K8s Env:[/b] Заголовки XX-* и заголовок Authorization присутствуют, но [b][code]Content-TypeЗаголовок [/code] отсутствует[/b].
[/list] [b]Наблюдения:[/b] [list] [*]Мы используем nextjs-cache. Я подозреваю, что запрос может быть перехвачен или изменен внутренним исправлением выборки Next.js в рабочей среде.
[*]Поскольку он работает локально (режим разработки), но не работает в контейнере производственной сборки, это похоже на проблему промежуточного программного обеспечения или оптимизации, специфичной для среды.
[*]Том пустойDir используется для кэширования, но поскольку это POST/PUT (где Content-Type имеет значение), он не должен выдавать устаревший кэшированный ответ.