Em 28/11/2025, este site está operando em dois projetos Astro.
hsbt.horse/*: Raizhsbt.horse/tools/*: Ferramentas
Não há problema se você escrever o root wrangler.json simplesmente de acordo com o documento oficial.
{ "name": "root", "compatibility_date": "2025-11-19", "route": "hsbt.horse/*", "assets": { "directory": "./dist/", "not_found_handling": "404-page" }, "preview_urls": false}Por outro lado, as ferramentas não funcionaram como esperado, a menos que algum trabalho fosse feito.
Problema: roteamento de subdiretório resulta em 404
Escreva wrangler.json da seguinte maneira.
{ "name": "tool", "compatibility_date": "2025-11-19", "route": "hsbt.horse/tools/*", "assets": { "directory": "./dist/", "not_found_handling": "404-page" }, "preview_urls": false}Não há problema com a forma como está escrito, mas se você implantá-lo como está, receberá um erro 404.
A razão é que o comportamento de upload de arquivos em dist/tools de acordo com a estrutura hierárquica de /tools/* descrita na rota parece ser a especificação do wrangler.
Solução: Defina base e outDir em astro.config.mjs
Este método pode ser usado ao tratar src/pages como tools/.
Se você definir base e outDir como abaixo em astro.config.mjs, funcionará conforme o esperado.
export default defineConfig({ site: "https://hsbt.horse", base: "/tools/", outDir: "./dist/tools",})base adiciona um prefixo aos links e caminhos de ativos gerados pelo Astro.
outDir altera o destino de saída da construção para ./dist/tools para corresponder à estrutura hierárquica esperada pelo wrangler.
Não planejado: implemente várias páginas em src/pages/tools
Não altere as configurações em astro.config.mjs. Base não está definida e outDir não foi alterado de dist.
Em vez disso, lidaremos com isso estabelecendo regras de implementação para o roteamento baseado em arquivo em src/pages.
Ao implementar as páginas necessárias em src/pages/tools, você pode enviar várias páginas para dist/tools sem alterar as configurações.
No entanto, com este método, o diretório _astro (vários JS, CSS, ativos agrupados) será criado diretamente em dist, portanto, o HTML em dist/tools será implantado, mas os ativos não serão implantados.
resumo
Ao implantar um projeto em um subdiretório com Cloudflare Workers, você precisa ajustar não apenas as configurações de rota do wrangler, mas também base e outDir no lado Astro.
Ao alinhar a hierarquia, o wrangler poderá fazer upload de arquivos corretamente.
hsb.horse