Astro 7.0.0-beta.6 ist am 19. Juni 2026 erschienen, einen Tag nach Beta.5 vom 18. Juni, und setzt den Lauf der 7.0-Linie fort, jede langjährige experimentelle Funktion in den stabilen Zweit zu übernehmen. Die Schlagzeile von Beta.6 ist, dass das Routen-Caching, das seit der 6.0-Veröffentlichung hinter experimental.cache und experimental.routeRules lag, nun eine stabile API auf Top-Level ist. Beta.5, die Version unmittelbar davor, hat den Standardwert von compressHTML auf 'jsx' geändert, was das gerenderte HTML jedes Projekts verändert, das sich auf den Erhalt von Whitespace zwischen Inline-Elementen verlassen hat. Beide Änderungen kommen auf die in Beta.4 vollzogene Stabilisierung der Sätteri-Markdown-Pipeline als Standard oben drauf, die in den Release-Notes zu Astro 7.0.0-beta.4 früher im Zyklus behandelt wurde.
Die 7.0-Linie bewegt sich zügig Richtung stabil. Beta.4 (15. Juni), Beta.5 (18. Juni), Beta.6 (19. Juni) und zwei Alphas davor haben fast jede experimentelle API, die 6.x hinter einem Flag auslieferte, in stabil überführt, das Rust-native Markdown zum Standard gemacht, das Standard-Whitespace-Handling auf JSX-Stil umgestellt und nun das Routen-Caching stabilisiert. Der Migrationsaufwand für jedes Projekt auf 6.x ist real, aber mechanisch: eine Konfigurationsumbenennung, ein Whitespace-Audit und die Prüfung, dass Ihr benutzerdefinierter Cache-Provider zu den unterstützten Top-Level-Optionen gehört.
Routen-Caching wird stabil
Das Routen-Caching war der letzte große experimental-Block, der aus 6.0 übrig war. Beta.6 befördert es auf eine Top-Level-Konfiguration. Die Migration besteht aus einer Umbenennung und einer Provider-Wahl:
// astro.config.mjs
import { defineConfig, memoryCache } from 'astro/config';
export default defineConfig({
cache: {
provider: memoryCache(),
},
routeRules: {
'/blog/[...path]': { maxAge: 300, swr: 60 },
},
});
In .astro-Seiten setzen Sie die Direktiven mit Astro.cache, in API-Routen und Middleware mit context.cache. Astro übersetzt diese Direktiven in die passenden Header oder das passende Laufzeitverhalten für den konfigurierten Provider, sodass dieselbe Konfiguration mit memoryCache, fsCache, cloudflareKV, vercelISR und den weiteren Providern funktioniert, die mit der 7.0-Linie ausgeliefert werden. Die vollständige Provider-Matrix ist im Routen-Caching-Leitfaden dokumentiert, der mit dem Release erscheint.
Für vorgerenderte Seiten greifen die Regeln weiterhin beim Build: Die Direktiven werden in die Cache-Control-Header des statischen HTML kodiert, was bedeutet, dass ein CDN vor Ihrer Site dieselben maxAge- und swr-Werte respektiert, die Sie auch für eine on-demand gerenderte Seite verwenden würden. Das ist die subtilste Änderung für Projekte, die bereits ein CDN vor vorgerenderter Ausgabe hatten: Dieselbe routeRules-Konfiguration steuert nun sowohl den on-demand Laufzeit-Cache als auch die Cache-Header der statischen Assets.
„jsx" wird der neue Standardwert für compressHTML
Beta.5 hat 'jsx' zum neuen Standardwert der Option compressHTML gemacht. Das ist derselbe Whitespace-Stripping-Modus, den React, Solid, Preact und die anderen JSX-basierten Frameworks verwenden: Whitespace um Elemente herum wird entfernt, eine Zeile bedeutsamen Whitespace zwischen zwei Inline-Elementen bleibt erhalten.
Der Unterschied ist in der Praxis relevant. Im älteren HTML-bewussten Kompressionsmodus (der bisherige Standard compressHTML: true) behielt Astro ein einzelnes Leerzeichen zwischen zwei Inline-Elementen, wenn in der Quelle ein wörtlicher Zeilenumbruch dazwischen stand. Im neuen Standard 'jsx' wird dieser Zeilenumbruch entfernt, was bedeutet, dass ein Template wie:
<p>
Hallo <span>Welt</span>
</p>
wie bisher gerendert wird, ein Template wie:
<p>
Klick
<a href="/x">hier</a>
für mehr
</p>
aber nun ohne den Zeilenumbruch zwischen „Klick", dem Link und „für mehr" gerendert wird. Wo Sie diesen Whitespace tatsächlich sichtbar haben wollen, schreiben Sie ihn explizit mit {' '}.
Für Projekte, die das alte Verhalten für die Dauer eines Audits behalten müssen, ist die Migration eine Zeile:
// astro.config.mjs
export default defineConfig({
compressHTML: true, // HTML-bewusste Kompression, der 6.x-Standard
});
Setzen Sie compressHTML: false, um die Kompression komplett zu deaktivieren, oder compressHTML: 'jsx', um den neuen Standard explizit festzuhalten. Beta.5 behebt außerdem eine Reihe von astro/hono- und astro/fetch-Bugs aus dem Advanced-Routing-Bereich, die sich im 7.0-Zyklus angesammelt hatten, darunter einen, bei dem die eigene 500.astro-Seite einen leeren error-Prop erhielt, wenn der Fehler aus der Middleware stammte.
Das Gesamtbild der 7.0
Zwischen Beta.4 und Beta.6 hat die 7.0-Linie nun fast alle experimentellen Funktionen, die 6.x hinter einem Flag auslieferte, stabilisiert oder ersetzt. Sätteri (Rust-natives Markdown) ist der Standard, Advanced Routing mit Hono ist stabil, der benutzerdefinierte Logger ist stabil, die Streaming-Rendering-Engine ist stabil, die JSX-Whitespace-Kompression ist der Standard, und das Routen-Caching ist nun auf Top-Level stabil. Die verbleibende 7.0-Arbeit vor der stabilen Version besteht vor allem aus Politur der Build-Toolchain, der endgültigen Graduierung von @astrojs/markdown-satteri und der Vite-8-Unterstützung, die im Laufe des Alpha- und Beta-Zyklus hinzugekommen ist.
Was jetzt zu tun ist
Für Projekte auf 6.x: Aktualisieren Sie auf den letzten 6.x-Patch und starten Sie frühzeitig mit der Konfigurationsmigration. Ziehen Sie cache und routeRules aus dem experimental-Block heraus, entscheiden Sie sich für einen Provider und führen Sie Beta.6 gegen einen Staging-Branch aus. Prüfen Sie Ihre Templates auf die Whitespace-Änderung: Wo immer Sie sich darauf verlassen, dass ein Zeilenumbruch zwischen zwei Inline-Elementen sichtbaren Whitespace erzeugt, wechseln Sie auf {' '} oder fallen Sie vorübergehend auf compressHTML: true zurück, bis Sie das Audit abgeschlossen haben. Die vollständige Liste der Breaking Changes der 7.0-Linie steht im CHANGELOG des withastro/astro-Repos. Halten Sie die Produktion auf der 6.x-Linie und behandeln Sie Beta.6 als Validierungsziel.



