Astro中如何在SSR模式下获取请求头信息?

晓萌 阅读 19

我正在用Astro做服务端渲染,想根据请求头里的User-Agent来判断设备类型,但不知道怎么在页面里拿到原始请求头。

试过在标签里用window.navigator.userAgent,但这是客户端的,而且SSR时window还没定义。文档里提到API路由可以用context.request.headers,但普通页面组件里怎么用呢?

比如我想在.astro文件里这样写:

---
// 这样写报错:headers is not defined
const userAgent = headers.get('User-Agent');
---
<div>{userAgent}</div>
我来解答 赞 12 收藏
二维码
手机扫码查看
1 条解答
淑怡酱~
在.astro文件里用 Astro.request.headers 就好了,全局 headers 是API路由专用的。

---
const userAgent = Astro.request.headers.get('User-Agent');
---
{userAgent}
点赞
2026-03-12 06:01