Mit Stand vom 28.11.2025 ist diese Website an zwei Astro-Projekten beteiligt.
hsbt.horse/*: Roothsbt.horse/tools/*: Werkzeuge
Es gibt kein Problem, wenn Sie die Root wrangler.json einfach gemäß dem offiziellen Dokument schreiben.
{ "name": "root", "compatibility_date": "2025-11-19", "route": "hsbt.horse/*", "assets": { "directory": "./dist/", "not_found_handling": "404-page" }, "preview_urls": false}Andererseits funktionierten die Tools nicht wie erwartet, es sei denn, es wurden einige Arbeiten durchgeführt.
Problem: Das Routing von Unterverzeichnissen führt zu 404
Schreiben Sie wrangler.json wie folgt.
{ "name": "tool", "compatibility_date": "2025-11-19", "route": "hsbt.horse/tools/*", "assets": { "directory": "./dist/", "not_found_handling": "404-page" }, "preview_urls": false}Es gibt kein Problem mit der Schreibweise, aber wenn Sie es so bereitstellen, wie es ist, erhalten Sie einen 404-Fehler.
Der Grund dafür ist, dass das Verhalten beim Hochladen von Dateien unter dist/tools gemäß der in Route beschriebenen hierarchischen Struktur von /tools/* die Spezifikation von Wrangler zu sein scheint.
Lösung: Legen Sie base und outDir in astro.config.mjs fest
Diese Methode kann verwendet werden, wenn src/pages als tools/ behandelt wird.
Wenn Sie base und outDir wie unten in astro.config.mjs festlegen, funktioniert es wie erwartet.
export default defineConfig({ site: "https://hsbt.horse", base: "/tools/", outDir: "./dist/tools",})base fügt den von Astro generierten Links und Asset-Pfaden ein Präfix hinzu.
outDir ändert das Build-Ausgabeziel in ./dist/tools, um der vom Wrangler erwarteten hierarchischen Struktur zu entsprechen.
Ungeplant: Implementieren Sie verschiedene Seiten unter src/pages/tools
Ändern Sie nicht die Einstellungen in astro.config.mjs. Base ist nicht festgelegt und outDir wird nicht von dist geändert.
Stattdessen werden wir uns damit befassen, indem wir Implementierungsregeln für die dateibasierte Routing-Seite unter src/pages festlegen.
Durch die Implementierung der erforderlichen Seiten unter src/pages/tools können Sie verschiedene Seiten an dist/tools ausgeben, ohne die Einstellungen zu ändern.
Bei dieser Methode wird jedoch das Verzeichnis _astro (verschiedene gebündelte JS-, CSS- und Assets) direkt unter dist erstellt, sodass der HTML-Code unter dist/tools bereitgestellt wird, die Assets jedoch nicht bereitgestellt werden.
Zusammenfassung
Wenn Sie ein Projekt in einem Unterverzeichnis mit Cloudflare Workers bereitstellen, müssen Sie nicht nur die Routeneinstellungen von Wrangler anpassen, sondern auch base und outDir auf der Astro-Seite.
Durch die Angleichung der Hierarchie kann Wrangler Dateien korrekt hochladen.
hsb.horse