服务端渲染
你可以在 Astro 中启用服务器端渲染(又称 SSR, Server Side Rendering)。启用后你可以:
- 在应用程序中实现登录状态会话。
- 用
fetch
动态调用 API 来渲染数据。 - 使用适配器部署你的网站。
启用 SSR
Section titled 启用 SSR为了启用 SSR,你需要使用适配器(Adapter)。这是因为 SSR 需要服务器运行时环境运行服务器端代码。服务器端代码可以调用该运行时提供的 API。
安装一个适配器可以让 Astro 访问相应的 API,并允许 Astro 输出一个脚本,在那种服务器上运行你的项目。
现有以下适配器,未来将有更多适配器:
你可以在上面的各个适配器链接中找到相关说明,并完成以下两个步骤启用 SSR(以下示例使用 my-adapter
作为占位符的):
-
通过 npm 或其他包管理器安装适配器:
-
在
astro.config.mjs
文件添加适配器导入和默认导出。
Astro 在默认情况下仍是静态网站生成器。但是一旦你启用了服务器端渲染适配器,你的页面目录中的每条路由都会成为服务器渲染的路由,一些新的功能就可以为你所用。
Astro.request.headers
Section titled Astro.request.headers你可以通过 Astro.request.headers
获取请求的 header 信息。Headers 对象类似 Map,你可以在此检索 cookie 等 header 信息。
Astro.redirect
Section titled Astro.redirect在 Astro
global 中,你可以用该方法重定向至另一页面。你可以在通过从 cookie 中获取到的用户会话来检查用户是否已经登录,然后之后再做这个动作。
Response
Section titled Response任何页面都可以返回 Response。可以在数据库中查找 ID 后,再动态返回 404 页面。
API 路由
Section titled API 路由src/pages/
,目录中的 .js
或 .ts
文件都是 API 路由,它接收 Request 并返回 Response数据。