Zum Inhalt springen
noel.marketing

Astro

Astro richtig mit Cloudflare nutzen

Noel

Geschrieben von Noel
Veröffentlicht:
22 Min. Lesezeit

Themen mit KI-Unterstützung recherchiert; von Noel vor der Veröffentlichung geprüft und überarbeitet.

Entwickler bereitet eine Astro-Website-Bereitstellung auf einem Laptop in einem modernen Arbeitsbereich vor
Bild mit KI erstellt.

Thema vertiefen

Weitere Astro-Guides, Glossar-Einträge und Workflows findest du im Themen-Hub.

Die Einrichtung des Astro Cloudflare Adapter Wrangler ist der Bereitstellungsweg, der es einer Astro-Website ermöglicht, auf Cloudflare Workers mit den richtigen Build-, Laufzeit- und Vorschau-Befehlen zu laufen. Praktisch verbindet es die Ausgabe von Astro mit der Edge-Laufzeit von Cloudflare, sodass Sie statische Assets, on-demand gerenderte Seiten und serverseitige Endpunkte bereitstellen können, ohne die Konfiguration erraten zu müssen.

Für Händler und Entwickler ist der Nutzen einfach: weniger Überraschungen bei der Bereitstellung. Wenn Ihre Website dynamisches Rendering, Formularverarbeitung oder serverseitige Logik benötigt, bieten der Adapter und Wrangler Ihnen eine wiederholbare Möglichkeit, diese Website auf Cloudflare zu erstellen, zu testen und bereitzustellen.

Wichtigste Erkenntnisse

  • Der Adapter ist die Brücke zwischen Astro und Cloudflare Workers, wenn Ihre Website on-demand Rendering benötigt.
  • Wrangler ist nicht nur ein Bereitstellungstool; es ist auch die lokale Vorschau-Schicht für das Verhalten von Cloudflare.
  • Eine funktionierende Einrichtung hängt davon ab, dass die Build-Ausgabe von Astro mit den Laufzeitbeschränkungen von Cloudflare übereinstimmt.
  • Hydrationsprobleme können von Cloudflare-Einstellungen kommen, nicht nur aus dem Astro-Code.
  • Node.js-spezifische Pakete sind eine häufige Ursache für serverseitige Build-Fehler auf Workers.

Was ist das?

Die Einrichtung des Astro Cloudflare Adapter Wrangler bezieht sich auf die Kombination von Astros Cloudflare-Integration und der Wrangler-CLI, damit Sie ein Astro-Projekt auf Cloudflare Workers erstellen und bereitstellen können. Der Adapter sagt Astro, wie es die Laufzeit von Cloudflare ansprechen soll, während Wrangler die lokalen Vorschau- und Bereitstellungskommandos übernimmt.

Das ist wichtig, weil Cloudflare Workers kein generischer Node-Server sind. Sie sind eine Edge-Laufzeit mit eigenen Regeln, sodass das gleiche Astro-Projekt unterschiedlich funktionieren kann, je nachdem, ob es für statisches Hosting, on-demand Rendering oder eine serveraktivierte Bereitstellung erstellt wird. Die Einrichtung ist der Teil, der diese Elemente zusammenführt.

Ein konkretes Beispiel: Stellen Sie sich eine Inhaltsseite vor, die größtenteils statisch ist, aber auch einige servergerenderte Seiten und einen API-Endpunkt für ein Newsletter-Formular hat. In diesem Fall würden Sie nicht einfach einen statischen Build ausführen und Dateien irgendwo hochladen. Sie würden den Cloudflare-Adapter installieren, die Wrangler-Konfiguration erstellen, das Projekt mit Wrangler in der Vorschau anzeigen und dann zu Workers bereitstellen, sodass die serverseitigen Teile im selben Umfeld wie die Frontend-Elemente verfügbar sind.

Der entscheidende Unterschied besteht darin, dass diese Einrichtung auf der Laufzeitabstimmung basiert und nicht nur auf dem Dateitransfer. Wenn Sie nur in Begriffen von “Dateien bereitstellen” denken, können Sie die Teile übersehen, die am wichtigsten sind: die Kompatibilität mit den Laufzeit-APIs von Cloudflare, das korrekte Routing-Verhalten und die Hydrationsstabilität im Browser. Deshalb werden der Adapter und Wrangler normalerweise zusammen besprochen.

Es ist auch nützlich, das Konzept von allgemeinen Hosting-Ratschlägen zu trennen. Ein normaler statischer Host kann gebaute Dateien akzeptieren und bereitstellen, aber Cloudflare Workers können zur Laufzeit Logik an der Edge ausführen. Das bedeutet, dass die Einrichtung nicht nur davon abhängt, wo die Dateien hingehen; es geht auch darum, welche Art von Code dort ausgeführt werden kann und wie Astro für diese Umgebung kompiliert werden sollte. Wenn Ihr Projekt kein serverseitiges Verhalten hat, ist die Einrichtung immer noch relevant, jedoch hauptsächlich als Bereitstellungs-Workflow. Wenn Ihr Projekt jedoch serverseitiges Verhalten hat, wird die Einrichtung zu einer Kompatibilitätsanforderung.

Warum es wichtig ist

Die geschäftlichen Auswirkungen beziehen sich hauptsächlich auf Zuverlässigkeit und Geschwindigkeit der Veröffentlichung. Wenn eine Astro-Website korrekt für Cloudflare konfiguriert ist, können Teams eine Website bereitstellen, die statische Assets schnell bereitstellt, während sie gleichzeitig serverseitiges Verhalten dort unterstützt, wo es nötig ist. Das ist nützlich für Händler, die schnelle Seiten wünschen, und für Entwickler, die ein Bereitstellungsziel wollen, das sowohl Inhalte als auch Logik verarbeiten kann.

Die technischen Auswirkungen sind ebenso wichtig. Cloudflare Workers haben Laufzeitbeschränkungen, sodass eine Bereitstellung, die auf einer Plattform funktioniert, auf Workers fehlschlagen kann, wenn sie von Node.js-APIs abhängt oder eine traditionelle Serverumgebung annimmt. Eine ordnungsgemäße Einrichtung verringert die Wahrscheinlichkeit, dass solche Probleme spät im Veröffentlichungsprozess entdeckt werden.

Es gibt auch einen Wartungsvorteil. Sobald der Adapter und die Wrangler-Konfiguration vorhanden sind, wird der Bereitstellungsweg wiederholbar: bauen, Vorschau, bereitstellen. Diese Wiederholbarkeit ist wichtig für Teams, die Inhalte häufig aktualisieren, Kampagnen durchführen oder mehrere Landingpages pflegen. Es ist besonders nützlich, wenn Sie einen vorhersehbaren Prozess wünschen, der nicht jedes Mal von manuellen Schritten im Dashboard abhängt.

Für leistungsstarke Websites ist Cloudflare attraktiv, da es Assets nahe bei den Nutzern bereitstellen kann. Astro tendiert bereits dazu, weniger clientseitiges JavaScript zu versenden, sodass die Kombination gut passt, wenn die Architektur der Website sauber gehalten wird. Wenn Sie auch Wert auf Navigationsverhalten oder Inhaltsstruktur legen, können verwandte Astro-Muster wie Inhaltskollektionen und die Inselarchitektur helfen, das Projekt organisiert zu halten, während die Bereitstellungsschicht einfach bleibt.

Ein zweiter Grund, warum es wichtig ist, ist die betriebliche Klarheit. Wenn ein Team eine definierte Einrichtung hat, ist es einfacher, grundlegende Veröffentlichungsfragen zu beantworten: Welcher Befehl baut die Website, welcher Befehl zeigt sie in der Vorschau an und welcher Befehl veröffentlicht sie? Das mag klein erscheinen, reduziert jedoch die Reibung bei der Übergabe zwischen Entwicklern, Inhaltsredakteuren und denjenigen, die für den Veröffentlichungsprozess zuständig sind. In der Praxis wird die Einrichtung Teil des Bereitstellungsvertrags des Teams.

Es gibt auch eine klarere Möglichkeit, Hosting-Optionen zu vergleichen. Wenn Sie zwischen einem traditionellen Server, einem statischen Host und Cloudflare Workers entscheiden, macht der Astro-Adapter/Wrangler-Weg den Kompromiss sichtbar. Sie können sehen, ob Ihr Projekt wirklich eine Laufzeit-Anforderungsbearbeitung benötigt oder ob die statische Ausgabe ausreichend ist. Diese Entscheidung kann später Zeit, Kosten und Debugging-Aufwand sparen.

Es gibt auch eine strategische Perspektive. Teams beginnen oft mit einer einfachen statischen Website und fügen später Personalisierung, Formulare oder API-Routen hinzu. Wenn der Bereitstellungsweg bereits Cloudflare-bewusst ist, wird dieses Wachstum einfacher, da Sie den Veröffentlichungsprozess nicht neu gestalten müssen, wenn die Website dynamischer wird. Mit anderen Worten, die Einrichtung bezieht sich nicht nur auf den heutigen Build; sie lässt Raum für das nächste Feature, ohne eine Plattformmigration zu erzwingen.

Wie es funktioniert

Die Einrichtung funktioniert in einer Sequenz, wobei jeder Schritt ein anderes Problem löst. Zuerst installieren Sie Wrangler, damit Sie die lokalen und Bereitstellungstools von Cloudflare zur Verfügung haben. Dann, wenn Ihre Website on-demand Rendering verwendet, fügen Sie den @astrojs/cloudflare Adapter hinzu, damit Astro weiß, wie es Workers ansprechen soll. Danach erstellen Sie die Wrangler-Konfigurationsdatei, damit Cloudflare weiß, wo sich Ihre gebauten Assets befinden und wie das Projekt ausgeführt werden soll.

Sobald die Konfiguration vorhanden ist, baut Astro das Projekt in eine Ausgabe, die Cloudflare bereitstellen kann. Wrangler zeigt dann diesen Build lokal in einer Cloudflare-ähnlichen Umgebung an, was wichtig ist, da einige Probleme nur auftreten, wenn die Laufzeit sich wie Workers verhält und nicht wie ein generischer lokaler Entwicklungsserver. Schließlich stellt Wrangler das Projekt auf Cloudflare bereit.

Der Mechanismus ist am leichtesten zu verstehen, wenn Sie ihn als drei Schichten betrachten. Astro ist verantwortlich für die Generierung der Website. Der Adapter übersetzt die Erwartungen von Astro in Cloudflare-kompatibles Verhalten. Wrangler ist die Betriebsschicht, die das Ergebnis in der Vorschau anzeigt und bereitstellt. Wenn eine dieser Schichten fehlt oder nicht übereinstimmt, kann die Bereitstellung dennoch fehlschlagen, selbst wenn der Code selbst in Ordnung aussieht.

Die praktische Implikation ist, dass Sie nicht nur eine Website erstellen; Sie wählen auch einen Laufzeitvertrag aus. Dieser Vertrag beeinflusst, wie Routen aufgelöst werden, wie Servercode ausgeführt wird und wie Assets gepackt werden. Zum Beispiel kann eine Seite, die in einem generischen Entwicklungsserver korrekt gerendert wird, in Workers immer noch fehlschlagen, wenn sie ein Paket importiert, das von Node-spezifischen APIs abhängt. Die Einrichtung zwingt diese Inkompatibilität, frühzeitig sichtbar zu werden.

Sie ändert auch, wie Sie über Debugging nachdenken. Anstatt nur zu fragen: “Wird die Seite gerendert?”, fragen Sie: “Wird sie in der gleichen Umgebung gerendert, die sie in der Produktion verwenden wird?” Das ist der eigentliche Wert der Kombination von Adapter und Wrangler: Sie verringern die Lücke zwischen lokalen Tests und dem Live-Verhalten.

Statische und on-demand Wege

Cloudflare-Bereitstellungen können je nach Website unterschiedlich genutzt werden. Bei einer statischen Website ist die Konfiguration einfacher, da die Ausgabe hauptsächlich aus Assets besteht. Für on-demand Rendering wird der Adapter wichtiger, weil Astro Seiten oder Antworten zur Anforderungszeit innerhalb der Laufzeit von Workers generieren muss.

Dieser Unterschied beeinflusst, wie Sie über Routing und Serververhalten nachdenken. Eine statische Website dreht sich hauptsächlich um das Bereitstellen von Dateien. Eine On-Demand-Website dreht sich um das Bereitstellen von Dateien plus Laufzeitlogik. Je mehr Laufzeitlogik Sie hinzufügen, desto wichtiger wird es, die Kompatibilität mit den APIs von Cloudflare zu überprüfen und das Projekt mit Wrangler vor der Bereitstellung in der Vorschau anzuzeigen.

Eine nützliche Faustregel ist zu fragen, ob die Seite auf die Anfrage selbst reagieren muss. Wenn die Antwort nein ist, könnte die statische Ausgabe ausreichend sein. Wenn die Antwort ja ist, werden der Adapter und die Laufzeitkonfiguration Teil des Features und nicht nur Teil der Bereitstellung. Diese Unterscheidung hilft den Teams, ein Projekt zu vermeiden, das später in serverseitiges Verhalten hineinwächst und nicht ausreichend konfiguriert ist.

Lokale Vorschau ist wichtig

Die lokale Vorschau mit Wrangler ist in der Praxis nicht optional, wenn Sie weniger Überraschungen wünschen. Sie gibt Ihnen die Möglichkeit zu sehen, wie der Build sich in einer Cloudflare-ähnlichen Umgebung verhält, bevor die Benutzer ihn sehen. Dort erkennen Sie falsche Annahmen über Routing, Asset-Bereitstellung oder serverseitigen Code.

Hier entdecken Teams auch oft, dass ein Paket in der Entwicklung funktioniert, aber nicht in der Laufzeit von Workers. Wenn eine Abhängigkeit Node.js-Laufzeit-APIs importiert, kann der Build fehlschlagen oder die App kann sich unerwartet verhalten. Lokale Vorschau hilft Ihnen, diese Probleme zu identifizieren, während Sie noch den Kontext haben, um sie zu beheben.

Ein nützliches mentales Modell ist: zuerst bauen, dann Vorschau, zuletzt bereitstellen. Wenn Sie diese Reihenfolge umkehren, verwenden Sie effektiv die Produktion als Ihre Testumgebung, was der teuerste Ort ist, um ein Kompatibilitätsproblem zu entdecken. Wrangler existiert, um dieses Risiko aus dem Veröffentlichungsweg herauszuhalten.

Anwendungsfälle

Der häufigste Anwendungsfall ist eine Marketing- oder Inhaltsseite, die eine schnelle globale Bereitstellung benötigt, aber auch einige dynamische Funktionen erfordert. Ein Händler möchte möglicherweise größtenteils statische Produkt- oder Landingpages sowie ein servergerendertes Kontaktformular, eine einfache API-Route oder eine Seite, die je nach Anfrage Kontext wechselt. Cloudflare Workers können diese Mischung unterstützen, wenn die Astro-Einrichtung korrekt abgestimmt ist.

Ein zweiter Anwendungsfall ist eine von Entwicklern geführte Dokumentations- oder Ressourcenseite, die Einfachheit bei der Bereitstellung und vorhersehbares Routing benötigt. In diesem Szenario kann die Website größtenteils statisch sein, aber das Team möchte dennoch eine Bereitstellungspipeline, die bei jedem Push gleich funktioniert. Wrangler gibt diesem Team einen wiederholbaren Workflow in der Befehlszeile anstelle eines manuellen Veröffentlichungsprozesses.

Ein dritter Anwendungsfall ist eine leistungsorientierte Website, die bereits um Astros Low-JavaScript-Ansatz herum gestaltet ist. Wenn das Frontend absichtlich schlank ist, kann die Bereitstellung auf Cloudflare sinnvoll sein, da das Laufzeit- und Bereitstellungsmodell zur Architektur der Website passt. Dies ist besonders hilfreich, wenn die Website eine Mischung aus statischen Seiten, inhaltsgetriebenen Seiten und einer kleinen Menge an Serverlogik hat.

Das Entscheidungskriterium ist nicht: “Soll alles auf Workers laufen?” Es ist: “Braucht diese Website die Laufzeit- und Bereitstellungsmodelle von Cloudflare?” Wenn die Antwort ja ist, ist die Einrichtung des Adapters und von Wrangler der praktische Weg. Wenn die Website rein statisch ist und keine serverseitigen Anforderungen hat, kann die Einrichtung immer noch nützlich sein, aber der Grund ist einfacher: Sie möchten einen sauberen, wiederholbaren Bereitstellungsprozess für Cloudflare.

Es gibt auch einen Anwendungsfall für die Teamstruktur. Kleinere Teams möchten oft einen Bereitstellungsweg, der sowohl für die Vorschau als auch für die Produktion funktioniert, insbesondere wenn die gleichen Personen für Inhalte, Code und Veröffentlichungsprüfungen verantwortlich sind. In diesem Fall reduziert die Einrichtung den Kontextwechsel. Ein Entwickler kann eine Änderung vornehmen, sie in einer Cloudflare-ähnlichen Umgebung in der Vorschau anzeigen und bereitstellen, ohne die Arbeit an einen separaten Betriebsprozess zu übergeben.

Ein weiteres Szenario ist eine Website, die statisch beginnt und langsam anforderungsbewusste Funktionen hinzufügt. In diesem Fall wird die Cloudflare-Einrichtung zu einem Wachstumspfad. Teams können das gleiche Bereitstellungsziel beibehalten, während sie neue Routen oder Serverlogik einführen, solange sie weiterhin die Laufzeitkompatibilität überprüfen. Das ist oft einfacher, als später zu einem neuen Host zu wechseln, nur weil die Website interaktiver geworden ist.

So implementieren oder anwenden

Zuerst entscheiden Sie, ob Ihre Astro-Website on-demand Rendering benötigt. Diese Entscheidung bestimmt, ob der Cloudflare-Adapter erforderlich ist. Wenn die Website nur statische Ausgaben verwendet, kann Ihre Einrichtung leichter sein. Wenn sie serverseitiges Rendering oder Verhalten zur Anforderungszeit benötigt, installieren Sie den Adapter, damit Astro die richtige Ausgabe für Cloudflare Workers generieren kann.

Als nächstes installieren Sie Wrangler und lassen Astro die Cloudflare-Integration hinzufügen, wenn dies sinnvoll ist. Die Astro-Dokumentation beschreibt einen Workflow, bei dem npx astro add cloudflare den Adapter installieren und die erforderlichen Änderungen an astro.config.mjs in einem Schritt vornehmen kann. Das ist nützlich, weil es die Wahrscheinlichkeit verringert, dass die Konfiguration falsch bearbeitet wird.

Dann erstellen oder bestätigen Sie die Wrangler-Konfigurationsdatei. Die Dokumentation zeigt eine Konfiguration, die Assets auf ./dist für statische Ausgaben verweist, und sie weist darauf hin, dass der Adapter diese Datei für Sie erstellen kann. Für on-demand Bereitstellungen muss die Konfiguration mit der Art und Weise übereinstimmen, wie das Projekt tatsächlich gebaut wird, also nehmen Sie nicht an, dass eine statische Konfiguration ausreicht, wenn Ihre Website serverseitiges Rendering verwendet.

Danach führen Sie einen lokalen Build durch und zeigen ihn mit Wrangler in der Vorschau an. Der dokumentierte Ablauf besteht darin, zuerst zu bauen und dann wrangler dev für die Vorschau auszuführen. Diese Reihenfolge ist wichtig, da Sie das tatsächliche Build-Artefakt testen möchten und nicht nur den Quellcode. Wenn die Vorschau korrekt aussieht, stellen Sie mit wrangler deploy bereit.

Ein praktisches Implementierungsdetail ist, die Kompatibilitätsprüfung als Teil der Einrichtung zu behandeln und nicht als separate Aufräumaufgabe. Wenn Ihr Projekt ein Paket importiert, das von Node.js-Laufzeit-APIs abhängt, lösen Sie das vor dem Bereitstellungsschritt. Warten Sie nicht bis nach der Bereitstellung, da Sie in der Regel durch mehrere Schichten der Konfiguration zurückverfolgen müssen. Es ist schneller, die Kompatibilität zu überprüfen, während Sie das Projekt noch bearbeiten.

Eine nützliche Gewohnheit ist es, den Build-Befehl und den Bereitstellungsbefehl in Ihrer Repo-Dokumentation oder README sichtbar zu halten. Das hilft Mitwirkenden und zukünftigen Wartenden, den genauen Ablauf zu verstehen. In einer Teamumgebung ist die beste Bereitstellungseinrichtung die, die eine andere Person ohne Raten durchführen kann.

Wenn Sie von einem bestehenden Astro-Projekt arbeiten, nehmen Sie die Änderung in einem kontrollierten Durchgang vor: installieren Sie den Adapter, bestätigen Sie die generierte Konfiguration, führen Sie einen Build durch, zeigen Sie ihn lokal in der Vorschau an, und passen Sie dann nur die Routen oder laufzeitspezifischen Codes an. Diese Reihenfolge hält die Ursache eines Fehlers offensichtlich. Wenn Sie Code und Bereitstellungseinstellungen gleichzeitig ändern, wird das Debugging schwieriger, da Sie nicht feststellen können, welche Schicht das Problem verursacht hat.

Eine praktische Entscheidungscheckliste

Bevor Sie bereitstellen, überprüfen Sie diese Punkte in der Reihenfolge:

  • Benötigt die Website on-demand Rendering oder serverseitiges Verhalten?
  • Ist der Cloudflare-Adapter installiert und in astro.config.mjs reflektiert?
  • Zeigt die Wrangler-Konfiguration auf die richtige Build-Ausgabe?
  • Haben Sie die gebaute Website lokal mit Wrangler in der Vorschau angezeigt?
  • Sind alle serverseitigen Abhängigkeiten mit der Laufzeit von Cloudflare kompatibel?

Wenn Sie auch strukturierte Inhalte erstellen, halten Sie die Bereitstellungseinrichtung von Entscheidungen zur Inhaltsmodellierung getrennt. Eine Website kann gut organisierte Inhaltskollektionen haben und dennoch zum Zeitpunkt der Bereitstellung scheitern, wenn die Laufzeit falsch ist. Deshalb sollten Bereitstellungs- und Inhaltsarchitektur zusammen überprüft werden, nicht als dieselbe Aufgabe behandelt werden.

Ein einfacher Implementierungstest besteht darin zu fragen, ob ein Teamkollege die Website von Grund auf neu erstellen könnte, nur mit dem Repo und der README. Wenn die Antwort nein ist, ist die Einrichtung zu implizit. Eine gute Bereitstellungsdokumentation sollte jemandem sagen, was zu installieren ist, was zu bauen ist, wie man Vorschau anzeigt und was zu erwarten ist, falls ein Kompatibilitätsproblem auftritt.

Häufige Fehler und Fallstricke

Der häufigste Fehler besteht darin, Cloudflare wie ein generisches Hosting-Ziel zu behandeln. Ist es nicht. Cloudflare Workers haben Laufzeitbeschränkungen, und Astro-Projekte, die von Node.js-Laufzeit-APIs abhängen, können scheitern, wenn sie in diese Umgebung verschoben werden. Wenn ein Paket oder Import nicht kompatibel ist, kann der Build mit einem Fehler über ein fehlendes Paket fehlschlagen, das tatsächlich in Node integriert ist.

Ein weiteres häufiges Problem ist das Überspringen der lokalen Vorschau. Teams erstellen manchmal erfolgreich und nehmen an, die Bereitstellung würde sich gleich verhalten, aber Workers können Routing- oder Laufzeitunterschiede aufzeigen, die in einem Standard-Entwicklungsserver nicht auftreten. Wrangler existiert, um diese Lücke zu verringern, sodass das Überspringen einen der nützlichsten Checks im Prozess entfernt.

Hydrationsunterschiede sind ein weiterer Fallstrick. Die Astro-Dokumentation weist darauf hin, dass die Auto Minify-Einstellung von Cloudflare die clientseitige Hydration stören kann und Konsolenmeldungen wie “Hydration abgeschlossen, aber enthält Unterschiede” erzeugt. Das ist leicht zu fehldiagnostizieren, wenn Sie nur Ihren Komponenten-Code betrachten. In einigen Fällen liegt die Lösung in den Cloudflare-Einstellungen und nicht in Astro selbst.

Ein letzter Fallstrick ist die Verwendung falscher Bereitstellungsannahmen für eine benutzerdefinierte 404-Seite oder Routing-Verhalten. Die Dokumentation erwähnt, dass Workers-Projekte möglicherweise not_found_handling gesetzt haben müssen, wenn Sie eine benutzerdefinierte 404-Seite bereitstellen möchten. Wenn Sie dieses Detail ignorieren, kann Ihre Website gebaut und bereitgestellt werden, sich aber dennoch falsch verhalten, wenn Benutzer auf fehlende Routen zugreifen.

Ein weiterer subtiler Fehler ist das Mischen von statischen und serverseitigen Annahmen im gleichen Veröffentlichungsplan. Ein Team kann die Website so konfigurieren, als wäre sie vollständig statisch, und dann später Funktionen zur Anforderungszeit hinzufügen, ohne den Adapter oder die Wrangler-Konfiguration erneut zu besuchen. Das führt oft zu verwirrenden Fehlern, da der Bereitstellungsweg nicht mehr mit dem tatsächlichen Verhalten der App übereinstimmt. Die Lösung besteht darin, das Laufzeitmodell jedes Mal zu überprüfen, wenn Sie serverseitigen Code hinzufügen.

Es ist auch einfach, sich zu sehr auf den Adapter zu konzentrieren und die umgebenden Cloudflare-Einstellungen zu vergessen. Zum Beispiel kann eine Bereitstellung technisch korrekt sein, während das Verhalten des Browsers weiterhin fehlerhaft aussieht, weil eine Plattformoptimierung das HTML ändert, nachdem Astro es generiert hat. Wenn das passiert, liegt das Problem nicht immer in Ihrem Quellcode. Die bessere Gewohnheit besteht darin, den gesamten Weg zu überprüfen: Build-Ausgabe, Laufzeitkompatibilität und Cloudflare-seitige Transformationen.

Best Practices und schnelle Checkliste

Der sicherste Ansatz besteht darin, die Einrichtung minimal, explizit und testbar zu halten. Installieren Sie nur die benötigten Tools, lassen Sie Astro die Cloudflare-Integration generieren, wenn möglich, und überprüfen Sie die Build-Ausgabe, bevor Sie bereitstellen. Je mehr Sie sich auf die Standardeinstellungen verlassen, desto einfacher ist es, den einen Ort zu erkennen, an dem Ihr Projekt vom Standardweg abweicht.

Es hilft auch, die Anliegen zu trennen. Verwenden Sie Astro für Inhalt und Rendering-Entscheidungen, verwenden Sie den Adapter für die Laufzeitzielsetzung und verwenden Sie Wrangler für Vorschau und Bereitstellung. Diese Trennung erleichtert das Debugging, da Sie wissen, welche Schicht welches Problem besitzt. Wenn eine Seite nicht gerendert wird, können Sie fragen, ob das Problem im Astro-Code, der Cloudflare-Kompatibilität oder der Wrangler-Konfiguration liegt.

Für Teams, die in einem Veröffentlichungsrhythmus arbeiten, sollten Bereitstellungsprüfungen Teil der Definition von “fertig” sein. Eine Seite ist nicht wirklich bereit, bis sie gebaut, im Kontext von Workers in der Vorschau angezeigt und auf Hydrations- oder Routing-Probleme überprüft wurde. Das ist besonders wichtig, wenn die Website Formulare, APIs oder andere Funktionen zur Anforderungszeit enthält.

Eine gute Faustregel ist, die einfachste funktionierende Konfiguration zu bevorzugen. Wenn eine statische Bereitstellung ausreichend ist, fügen Sie nicht unnötig Serverkomplexität hinzu, nur weil sie verfügbar ist. Wenn Sie serverseitiges Verhalten benötigen, fügen Sie es absichtlich hinzu und überprüfen Sie es gegen die Laufzeit von Workers. Das hält das Projekt einfacher zu warten und verringert die Wahrscheinlichkeit unbeabsichtigter Inkompatibilitäten.

Schnelle Checkliste

  • Installieren Sie Wrangler, bevor Sie bereitstellen.
  • Fügen Sie den Cloudflare-Adapter hinzu, wenn die Website on-demand Rendering benötigt.
  • Bestätigen Sie, dass astro.config.mjs das Cloudflare-Ziel widerspiegelt.
  • Bauen Sie das Projekt, bevor Sie es in der Vorschau anzeigen.
  • Verwenden Sie wrangler dev, um Laufzeitunterschiede frühzeitig zu erkennen.
  • Stellen Sie mit demselben Toolchain bereit, das Sie für die Vorschau verwendet haben.
  • Überprüfen Sie die Cloudflare-Einstellungen, wenn die Hydration fehlerhaft aussieht.
  • Überprüfen Sie die Paketkompatibilität, wenn serverseitige Builds fehlschlagen.

Wenn Sie die Website über die Zeit wartbar halten möchten, koppeln Sie die Bereitstellungseinrichtung mit einer sauberen Inhaltsstruktur. Hierbei werden Astros Inhaltskollektionen und verwandte Architektur Muster nützlich: Sie halten die Inhaltsschicht vorhersehbar, während die Cloudflare-Schicht die Bereitstellung übernimmt.

Eine letzte Best Practice ist es, das “Warum” zu dokumentieren, nicht nur die Befehle. Wenn das Repo erklärt, dass ein bestimmtes Paket vermieden wird, weil es nicht Worker-kompatibel ist, ist es weniger wahrscheinlich, dass zukünftige Wartende dasselbe Problem wieder einführen. Diese Art von Hinweis spart Zeit, wenn sich das Projekt Monate später ändert.

Aus der Praxis — illustratives Szenario (hypothetisch, kein Kundenprojekt)

Illustratives Beispiel — kein reales Kundenprojekt: Stellen Sie sich einen Händler vor, der eine kleine Katalogseite mit einigen Kampagnenseiten, einem Kontaktformular und einigen Inhaltsseiten betreibt, die häufig aktualisiert werden müssen. Das Team möchte eine schnelle globale Bereitstellung, aber sie möchten auch, dass eine Seite anforderungsspezifische Inhalte rendert und eine andere Daten an einen Server-Endpunkt übermittelt. Sie wählen Astro, weil die Website leichtgewichtig bleiben soll, und sie wählen Cloudflare, weil sie ein edge-freundliches Bereitstellungsmodell wollen.

Die Einrichtung beginnt mit den Grundlagen: Wrangler installieren, den Cloudflare-Adapter hinzufügen und Astro die Konfiguration schreiben lassen, wo es möglich ist. Das Team baut dann die Website und zeigt sie lokal mit Wrangler in der Vorschau an. Während der Vorschau bemerken sie, dass eine serverseitige Abhängigkeit auf eine Node.js-Laufzeit-API angewiesen ist. Dieses Paket funktioniert in einer anderen Umgebung, aber nicht in Workers, also ersetzen sie es vor der Bereitstellung durch eine Cloudflare-kompatible Alternative.

Als nächstes testen sie die Seiten, die am wichtigsten sind. Die statischen Seiten laden korrekt, die anforderungsbasierte Seite wird wie erwartet gerendert, und der Formular-Endpunkt reagiert in der Vorschau von Workers. Aber die Browserkonsole zeigt nach dem Testen der Bereitstellung eine Warnung über eine Hydrationsunterschiede an. Anstatt sofort den Komponenten-Code zu ändern, überprüfen sie die Cloudflare-Einstellungen und stellen fest, dass Auto Minify aktiviert ist. Das Deaktivieren behebt den Unterschied, da das HTML und die Hydrationslogik nun zuverlässiger übereinstimmen.

Das Team trifft dann noch eine Entscheidung: Sie dokumentieren die genauen Build- und Bereitstellungsbefehle im Repo, damit zukünftige Updates denselben Weg folgen. Das ist wichtig, da die Website sich wahrscheinlich im Laufe der Zeit ändern wird, und die nächste Person, die sich darum kümmert, sollte nicht die Laufzeitregeln neu entdecken müssen. Das Ergebnis ist ein Workflow, der einfach genug für routinemäßige Updates, aber streng genug ist, um Kompatibilitätsprobleme vor dem Start zu erkennen.

Die Erkenntnis ist nicht, dass Cloudflare schwierig ist. Die Erkenntnis ist, dass der Adapter und Wrangler die Bereitstellungsregeln frühzeitig sichtbar machen, damit sie behoben werden können. Ein Händler oder Entwickler, der diesen Prozess befolgt, kann vermeiden, die Bereitstellung als letzte Überraschung zu behandeln, und stattdessen als Teil des Build-Workflows betrachten. Das ist der eigentliche Wert der Einrichtung: Sie verwandelt die Cloudflare-Kompatibilität in etwas, das Sie verifizieren können, bevor die Benutzer jemals die Website sehen.

Verwandte Begriffe und weiterführende Literatur

Kostenlose Astro Launch Checklist

Checkliste zu SEO, Performance, Structured Data und Deployment — plus gelegentliche Produkt-Updates und Subscriber-Rabatte.

Thema vertiefen

Weitere Astro-Guides, Glossar-Einträge und Workflows findest du im Themen-Hub.

Häufige Fragen

Wann benötige ich den Astro Cloudflare-Adapter?

Sie benötigen den Cloudflare-Adapter, wenn Ihre Astro-Website on-demand Rendering oder andere serverseitige Funktionen verwendet, die auf Cloudflare Workers ausgeführt werden müssen. Wenn Ihre Website rein statisch ist, benötigen Sie möglicherweise nicht den Adapter, aber Sie benötigen dennoch eine Bereitstellungseinrichtung, die mit der Art und Weise übereinstimmt, wie Sie die Website erstellen und bereitstellen.

Was macht Wrangler in dieser Einrichtung?

Wrangler ist das Befehlszeilentool, das verwendet wird, um Cloudflare Workers-Projekte in der Vorschau anzuzeigen und bereitzustellen. In einer Astro-Einrichtung hilft es Ihnen, die gebaute Website lokal mit dem Laufzeitverhalten von Cloudflare zu testen, bevor Sie veröffentlichen.

Warum schlägt die Hydration manchmal auf Cloudflare fehl?

Ein bekanntes Problem ist die Auto Minify-Einstellung von Cloudflare, die die clientseitige Hydration stören kann. Wenn Sie eine Hydrationsunterschiedmeldung in der Konsole sehen, ist das Deaktivieren von Auto Minify eine häufige erste Überprüfung.

Kann Astro Node.js-Pakete auf Cloudflare Workers verwenden?

Nicht immer. Cloudflare Workers verwenden eine Laufzeit, die nicht dieselbe wie ein vollständiger Node.js-Server ist, sodass Pakete, die von Node.js-Laufzeit-APIs abhängen, während des Builds oder der Ausführung fehlschlagen können.

Wie sieht der einfachste Bereitstellungsfluss aus?

Der grundlegende Ablauf besteht darin, Wrangler zu installieren, den Cloudflare-Adapter hinzuzufügen, wenn Ihre Website on-demand Rendering benötigt, die Wrangler-Konfiguration zu erstellen, die Website zu bauen, sie lokal in der Vorschau anzuzeigen und dann bereitzustellen.

Weiterlesen

  1. 1Astro auf Cloudflare Pages bereitstellen

    Ein praktischer Leitfaden zur Bereitstellung von Astro auf Cloudflare Pages, einschließlich Laufzeitentscheidungen, Adapterkonfiguration, häufigen Fehlern und Bereitstellungsprüfungen.

  2. 2Astro Vercel Variablen, klar erklärt

    Ein praktischer Leitfaden zu Astro-Umgebungsvariablen mit Vercel-Bereitstellungen. Lernen Sie, wie Werte geladen werden, wo sie verfügbar sind und wie Sie häufige Fehler vermeiden.

  3. 3Astro Netlify SSR Einrichtung, erklärt

    Ein praktischer Leitfaden zur Verwendung des Astro Netlify Adapters für SSR und On-Demand-Rendering. Lerne, wann es wichtig ist, wie es funktioniert und wie du es sicher einrichtest.

  4. 4Astro-Adapter für flexible Bereitstellung

    Astro-Adapter verbinden Ihre Website mit einem Bereitstellungsziel und ermöglichen statisches, serverseitig gerendertes oder Edge-Rendering. Dieser Leitfaden erklärt, wie sie funktionieren und wann sie eingesetzt werden sollten.

  5. 5SEO-Grundlagen für benutzerdefinierte 404-Seiten

    Ein praktischer Leitfaden zu benutzerdefinierten 404-Seiten in Astro mit SEO- und UX-Ratschlägen. Erfahren Sie, wie Sie 404-Seiten effektiv nutzen und häufige Fehler vermeiden.