Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
This adapter allows Astro to deploy your SSR site to Netlify.
Learn how to deploy your Astro site in our Netlify deployment guide.
Why Astro Netlify
If you’re using Astro as a static site builder—its behavior out of the box—you don’t need an adapter.
If you wish to use server-side rendering (SSR), Astro requires an adapter that matches your deployment runtime.
Netlify is a deployment platform that allows you to host your site by connecting directly to your GitHub repository. This adapter enhances the Astro build process to prepare your project for deployment through Netlify.
Add the Netlify adapter to enable SSR in your Astro project with the following
astro add command. This will install the adapter and make the appropriate changes to your
astro.config.mjs file in one step.
Add dependencies manually
If you prefer to install the adapter manually instead, complete the following two steps:
Install the Netlify adapter to your project’s dependencies using your preferred package manager. If you’re using npm or aren’t sure, run this in the terminal:
Add two new lines to your
astro.config.mjsproject configuration file.
Run middleware in Edge Functions
When deploying to Netlify Functions, you can choose to use an Edge Function to run your Astro middleware.
To enable this, set the
edgeMiddleware config option to
Pass edge context to your site
Netlify Edge Functions provide a context object including metadata about the request, such as a user’s IP, geolocation data, and cookies.
To expose values from this context to your site, create a
.js) file in your project’s source directory. This file must export a function that returns the data to add to Astro’s
locals object, which is available in middleware and Astro routes.
In this example,
hasEdgeMiddleware would both be added to Astro’s
netlify-edge-middleware.ts must provide a function as its default export. This function:
- must return a JSON-serializable object, which cannot include types like
- will always run first, before any other middleware and routes.
- cannot return a response or redirect.
The Netlify adapter builds to a single function by default. Astro 2.7 added support for splitting your build into separate entry points per page. If you use this configuration, the Netlify adapter will generate a separate function for each page. This can help reduce the size of each function so they are only bundling code used on that page.
For static sites you usually don’t need an adapter. However, if you use
redirects configuration in your Astro config, the Netlify adapter can be used to translate this to the proper
Once you run
astro build there will be a
dist/_redirects file. Netlify will use that to properly route pages in production.
Netlify On-demand Builders are serverless functions used to generate web content as needed that’s automatically cached on Netlify’s Edge CDN. You can enable these functions using the
By default, all pages will be rendered on first visit and the rendered result will be reused for every subsequent visit until you redeploy. To set a revalidation time, call the
runtime.setBuildersTtl(ttl) local with the duration (in seconds).
The following example sets a revalidation time of 45, causing Netlify to store the rendered HTML for 45 seconds.
It is important to note that On-demand Builders ignore query params when checking for cached pages. For example, if
example.com/?x=y is cached, it will be served for
example.com/?a=b (different query params) and
example.com/ (no query params) as well.
Now you can deploy. Install the Netlify CLI and run:
To configure this adapter, pass an object to the
netlify() function call in
astro.config.mjs - there’s only one possible configuration option:
We build to the
dist directory at the base of your project. To change this, use the
And then point to the dist in your
You can enable On-demand Builders using the
On-demand Builders are only available with the
@astrojs/netlify/functions adapter and are not compatible with Edge Functions.
This option is only needed for the Functions adapter and is not needed for Edge Functions.
Netlify Functions requires binary data in the
body to be base64 encoded. The
@astrojs/netlify/functions adapter handles this automatically based on the
We check for common mime types for audio, image, and video files. To include specific mime types that should be treated as binary data, include the
binaryMediaTypes option with a list of binary mime types.
The Astro Netlify Edge Starter provides an example and a guide in the README.
Browse Astro Netlify projects on GitHub for more examples!
For help, check out the
#support channel on Discord. Our friendly Support Squad members are here to help!
You can also check our Astro Integration Documentation for more on integrations.
This package is maintained by Astro’s Core team. You’re welcome to submit an issue or PR!
See CHANGELOG.md for a history of changes to this integration.