Basic Setup
astro.config.mjs
Top-Level Options
Your final, deployed URL. Astro uses this full URL to generate your sitemap and canonical URLs in your final build. It is strongly recommended that you set this configuration to get the most out of Astro.
The base path to deploy to. Astro will use this path as the root for your pages and assets both in development and in production build.In the example below, When using this option, all of your static asset imports and URLs should add the base as a prefix. You can access this value via
astro dev will start your server at /docs.import.meta.env.BASE_URL.Set the route matching behavior for trailing slashes in the dev server and on-demand rendered pages.
'ignore'- Match URLs regardless of whether a trailing ”/” exists'always'- Only match URLs that include a trailing slash (e.g: “/about/”)'never'- Only match URLs that do not include a trailing slash (e.g: “/about”)
Specify a mapping of redirects where the key is the route to match and the value is the path to redirect to.You can redirect both static and dynamic routes, but only to the same kind of route.
Specifies the output target for builds.
'static'- Prerender all your pages by default, outputting a completely static site'server'- Use server-side rendering (SSR) for all pages by default
Deploy to your favorite server, serverless, or edge host with build adapters. Import one of our first-party adapters (Cloudflare, Netlify, Node.js, Vercel) to enable on-demand rendering.
Extend Astro with custom integrations. Integrations are your one-stop-shop for adding framework support (like Solid.js), new features (like sitemaps), and new libraries (like Partytown).
Directory Options
You should only provide this option if you run the
astro CLI commands in a directory other than the project root directory.Set the directory that Astro will read your site from. The value can be either an absolute file system path or a path relative to the project root.
Set the directory for your static assets. Files in this directory are served at
/ during dev and copied to your build directory during build.Set the directory that
astro build writes your final build to.Set the directory for caching build artifacts. Files in this directory will be used in subsequent builds to speed up the build time.
Build Options
Control the output file format of each page.
'file': Astro will generate an HTML file named for each page route'directory': Astro will generate a directory with a nestedindex.htmlfile for each page'preserve': Astro will generate HTML files exactly as they appear in your source folder
Controls the output directory of your client-side CSS and JavaScript when building a website with server-rendered pages. This value is relative to the
outDir.Controls the output directory of server JavaScript when building to SSR. This value is relative to the
outDir.Specifies the directory in the build output where Astro-generated assets (bundled JS and CSS for example) should live.
Specifies the prefix for Astro-generated asset links. This can be used if assets are served from a different domain than the current site.You can also pass an object to specify a different domain for each file type:
Specifies the file name of the server entrypoint when building to SSR. This entrypoint is usually dependent on which host you are deploying to.
Advanced Build Options
Advanced Build Options
Specifies whether redirects will be output to HTML during the build. This option only applies to
output: 'static' mode.Control whether project styles are sent to the browser in a separate css file or inlined into
<style> tags.'always'- project styles are inlined into<style>tags'auto'- only stylesheets smaller than 4kb are inlined'never'- project styles are sent in external stylesheets
The number of pages to build in parallel.In most cases, you should not change the default value of
1.Server Options
Set which network IP addresses the server should listen on.
false- do not expose on a network IP addresstrue- listen on all addresses, including LAN and public addresses[custom-address]- expose on a network IP address at[custom-address]
Set which port the server should listen on. If the given port is already in use, Astro will automatically try the next available port.
Controls whether the dev server should open in your browser window on startup.Pass a full URL string (e.g. “http://example.com”) or a pathname (e.g. “/about”) to specify the URL to open.
Set custom HTTP response headers to be sent in
astro dev and astro preview.Security Options
Performs a check that the “origin” header matches the URL sent by each
Request. This is used to provide Cross-Site Request Forgery (CSRF) protection.The “origin” check is executed only for pages rendered on demand, and only for the requests POST, PATCH, DELETE and PUT.Advanced Security Options
Advanced Security Options
Defines a list of permitted host patterns for incoming requests when using SSR. When configured, Astro will validate the
X-Forwarded-Host header against these patterns.Sets the maximum size in bytes allowed for action request bodies. By default, action request bodies are limited to 1 MB to prevent abuse.
Image Options
Set which image service is used for Astro’s assets support. The value should be an object with an entrypoint for the image service to use and optionally, a config object to pass to the service.
Defines a list of permitted image source domains for remote image optimization. No other remote images will be optimized by Astro.
Defines a list of permitted image source URL patterns for remote image optimization.
Advanced Image Options
Advanced Image Options
Set the endpoint to use for image optimization in dev and SSR.
Whether to automatically add global styles for responsive images. You should enable this option unless you are styling the images yourself.This option is only used when
layout is set to constrained, full-width, or fixed.The default layout type for responsive images. Can be overridden by the
layout prop on the image component.constrained- The image will scale to fit the container, maintaining its aspect ratiofixed- The image will maintain its original dimensionsfull-width- The image will scale to fit the container, maintaining its aspect ratio
The
object-fit CSS property value for responsive images. Can be overridden by the fit prop on the image component.The default
object-position CSS property value for responsive images. Can be overridden by the position prop on the image component.The breakpoints used to generate responsive images. Requires a value for
layout to be set.Markdown Options
Which syntax highlighter to use for Markdown code blocks, if any.
shiki- use the Shiki highlighterprism- use the Prism highlighterfalse- do not apply syntax highlighting
Shiki configuration options. Configure theme, languages, transformers, and more.
Pass remark plugins to customize how your Markdown is built. You can import and apply the plugin function (recommended), or pass the plugin name as a string.
Pass rehype plugins to customize how your Markdown’s output HTML is processed.
Astro uses GitHub-flavored Markdown by default. To disable this, set the
gfm flag to false.Astro uses the SmartyPants formatter by default. To disable this, set the
smartypants flag to false.Internationalization (i18n)
A list of all locales supported by the website. This is a required field.Languages can be listed either as individual codes or mapped to a shared
path of codes.The default locale of your website/application. This is a required field and must be one of the specified
locales.The fallback strategy when navigating to pages that do not exist. Use this object to declare a fallback
locale route for each language you support.Controls the routing strategy to determine your site URLs. Set this based on your folder/URL path configuration for your default language.
Advanced i18n Options
Advanced i18n Options
When
false, only non-default languages will display a language prefix. When true, all URLs will display a language prefix.Configures whether or not the home URL (
/) will redirect to /[defaultLocale] when prefixDefaultLocale: true is set.When
i18n.fallback is configured, this option controls whether to redirect to the fallback page, or to rewrite the fallback page’s content in place.Configures the URL pattern of one or more supported languages to use a custom domain (or sub-domain).
Environment Variables
An object that uses
envField to define the data type and properties of your environment variables: context (client or server), access (public or secret), a default value to use, and whether or not this environment variable is optional.Whether or not to validate secrets on the server when starting the dev server or running a build.By default, only public variables are validated on the server. If enabled, private variables will also be checked on start.
Other Options
This is an option to minify your HTML output and reduce the size of your HTML files. By default, Astro removes whitespace from your HTML in a lossless manner.
Specify the strategy used for scoping styles within Astro components.
'where'- Use:whereselectors, causing no specificity increase'class'- Use class-based selectors, causing a +1 specificity increase'attribute'- Usedata-attributes, causing a +1 specificity increase
Pass additional configuration options to Vite. Useful when Astro doesn’t support some advanced configuration that you may need.View the full
vite configuration object documentation on vite.dev.Dev Toolbar & Prefetch Options
Dev Toolbar & Prefetch Options
Whether to enable the Astro Dev Toolbar. This toolbar allows you to inspect your page islands, see helpful audits on performance and accessibility, and more.
The default placement of the Astro Dev Toolbar on the screen.
Enable prefetching for links on your site to provide faster page transitions.
Enable prefetching for all links, including those without the
data-astro-prefetch attribute.The default prefetch strategy to use when the
data-astro-prefetch attribute is set on a link with no value.'tap': Prefetch just before you click on the link'hover': Prefetch when you hover over or focus on the link'viewport': Prefetch as the links enter the viewport'load': Prefetch all links on the page after the page is loaded