Minor Changes
-
#12994
5361755
Thanks @ascorbic! - Redirects trailing slashes for on-demand pagesWhen the
trailingSlash
option is set toalways
ornever
, on-demand rendered pages will now redirect to the correct URL when the trailing slash doesn't match the configuration option. This was previously the case for static pages, but now works for on-demand pages as well.Now, it doesn't matter whether your visitor navigates to
/about/
,/about
, or even/about///
. In production, they'll always end up on the correct page. For GET requests, the redirect will be a 301 (permanent) redirect, and for all other request methods, it will be a 308 (permanent, and preserve the request method) redirect.In development, you'll see a helpful 404 page to alert you of a trailing slash mismatch so you can troubleshoot routes.
-
#12979
e621712
Thanks @ematipico! - Adds support for redirecting to external sites with theredirects
configuration option.Now, you can redirect routes either internally to another path or externally by providing a URL beginning with
http
orhttps
:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ redirects: { '/blog': 'https://example.com/blog', '/news': { status: 302, destination: 'https://example.com/news', }, }, });
-
#13084
0f3be31
Thanks @ematipico! - Adds a new experimental virtual moduleastro:config
that exposes a type-safe subset of yourastro.config.mjs
configurationThe virtual module exposes two sub-paths for controlled access to your configuration:
astro:config/client
: exposes config information that is safe to expose to the client.astro:config/server
: exposes additional information that is safe to expose to the server, such as file/dir paths.
To enable this new virtual module, add the
experimental.serializeManifest
feature flag to your Astro config:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { serializeManifest: true, }, });
Then, you can access the module in any file inside your project to import and use values from your Astro config:
// src/utils.js import { trailingSlash } from 'astro:config/client'; function addForwardSlash(path) { if (trailingSlash === 'always') { return path.endsWith('/') ? path : path + '/'; } else { return path; } }
For a complete overview, and to give feedback on this experimental API, see the Serialized Manifest RFC.
Patch Changes
-
#13049
2ed4bd9
Thanks @florian-lefebvre! - Updatesastro add tailwind
to add the@tailwindcss/vite
plugin instead of the@astrojs/tailwind
integration -
#12994
5361755
Thanks @ascorbic! - Returns a more helpful 404 page in dev if there is a trailing slash mismatch between the route requested and thetrailingSlash
configuration -
#12666
037495d
Thanks @Thodor12! - Added additional generated typings for the content layer -
Updated dependencies [
5361755
,db252e0
]:- @astrojs/internal-helpers@0.5.0
- @astrojs/markdown-remark@6.1.0