服务器标头
编辑页面
了解如何为 Expo Router 中的所有服务器路由响应设置自定义 HTTP 标头。
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
重要 服务器头信息在 SDK 54 及更高版本中可用,并且需要
expo-server来提供已导出的应用。
Expo Router 中的服务器头信息允许你为路由响应设置自定义 HTTP 头,用于安全、缓存、Cookie 和自定义元数据。头信息仅适用于 HTML 和 API 路由响应,不适用于静态资源,例如图片、字体或 JavaScript 包。
设置
1
在你的 应用配置 中的 expo-router 插件里配置头信息:
{ "expo": { "plugins": [ [ "expo-router", { "headers": { "X-Frame-Options": "DENY" } } ] ] } }
2
启动开发服务器或导出用于生产:
- npx expo start# 或导出用于生产- npx expo export -p web头信息会自动应用于所有 HTML 和 API 路由响应。
配置
头信息被配置为一个对象,其中键为头名称,值可以是字符串或字符串数组。
{ "expo": { "plugins": [ [ "expo-router", { "headers": { "X-Frame-Options": "DENY", "X-Content-Type-Options": "nosniff", "Set-Cookie": ["session=abc123; HttpOnly", "preference=dark; Path=/"] } } ] ] } }
示例
安全头信息
添加常见的安全头信息来保护你的应用:
{ "expo": { "plugins": [ [ "expo-router", { "headers": { "X-Frame-Options": "DENY", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "strict-origin-when-cross-origin", "X-XSS-Protection": "1; mode=block" } } ] ] } }
Cache-Control 头信息
为你的响应设置缓存策略:
{ "expo": { "plugins": [ [ "expo-router", { "headers": { "Cache-Control": "public, max-age=3600, s-maxage=86400" } } ] ] } }
自定义头信息
添加包含你的应用元数据的自定义头信息:
{ "expo": { "plugins": [ [ "expo-router", { "headers": { "X-App-Version": "1.0.0", "X-Environment": "production" } } ] ] } }
工作原理
输出模式
服务器头信息适用于在你的 app config 中配置的两种输出模式:
static:在使用expo-server提供预渲染 HTML 文件时应用头信息server:将头信息应用于动态渲染的响应
头信息优先级
在 expo-router 插件中定义的头信息会全局应用,但不会覆盖 API 路由设置的头信息。如果某个 API 路由返回的响应中包含一个同时也在插件配置中定义的头信息,则该路由特定的头信息优先。
例如,如果你全局配置了 Cache-Control: public, max-age=3600,但某个返回实时数据的 API 路由设置了 Cache-Control: no-store,则该 API 路由的头信息优先。
已知限制
- 重定向:头信息不适用于重定向响应
- 静态资源:头信息仅应用于 HTML 和 API 路由响应,不适用于图片、字体或 JavaScript 包等静态资源
相关内容
了解如何使用 Expo Router 创建服务器端点。
了解如何创建在每次请求服务器时运行的中间件。