HTTP ヘッダー
ヘッダーは主にルートモジュールの headers
エクスポートで定義されます。entry.server.tsx
でヘッダーを設定することもできます。
ルートモジュールから
Headers
インスタンスまたは HeadersInit
のいずれかを返すことができます。
ローダーとアクションから
ヘッダーがローダーデータに依存する場合、ローダーとアクションもヘッダーを設定できます。
1. 戻り値を data
でラップする
ローダーとアクションからのヘッダーは隠された方法では送信されません。headers
エクスポートから返す必要があります。
注目すべき例外の1つは Set-Cookie
ヘッダーです。これは、子ルートから headers
をエクスポートしなくても、親ルートの headers
、loader
、および action
から自動的に保持されます。
親ヘッダーとのマージ
次のネストされたルートを考えてみましょう。
両方のルートモジュールがヘッダーを設定したい場合、最も深く一致するルートからのヘッダーが送信されます。
親と子の両方のヘッダーを保持する必要がある場合は、子ルートでそれらをマージする必要があります。
追加
最も簡単な方法は、親ヘッダーに単純に追加することです。これにより、親が設定した可能性のあるヘッダーを上書きすることを回避し、両方が重要になります。
設定
親ヘッダーを上書きすることが重要な場合があります。append
の代わりに set
を使用してこれを行います。
ヘッダーをマージする必要性を回避するには、「リーフルート」(インデックスルートと子を持たない子ルート)でのみヘッダーを定義し、親ルートでは定義しないようにします。
entry.server.tsx
から
handleRequest
エクスポートは、ルートモジュールからのヘッダーを引数として受け取ります。ここでグローバルヘッダーを追加できます。
entry.server.tsx
がない場合は、reveal
コマンドを実行します。