// @ts-check import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; import sitemap from '@astrojs/sitemap'; import tailwindcss from '@tailwindcss/vite'; // https://astro.build/config export default defineConfig({ // Muss mit SITE.url in src/data/site.ts uebereinstimmen. site: 'https://djnizz.at', // Alle Seiten werden beim Build vorgerendert (maximale Performance). // Der Node-Adapter serviert sie und erlaubt es, spaeter einzelne Routen // (z. B. /api/booking) mit `export const prerender = false` dynamisch zu machen. adapter: node({ mode: 'standalone' }), integrations: [sitemap()], // Content-Security-Policy. Astro kennt seine eigenen gebuendelten Skripte und // Styles und traegt deren SHA-256-Hashes automatisch nach - deshalb wird die // Policy hier gesetzt und nicht im Reverse-Proxy: der weiss von den Hashes // nichts und wuerde die Inline-Module blockieren. security: { csp: { directives: [ "default-src 'self'", "img-src 'self' data:", "font-src 'self'", "connect-src 'self'", "form-action 'self'", "base-uri 'self'", "object-src 'none'", ], scriptDirective: { resources: ["'self'"] }, styleDirective: { resources: ["'self'"] }, }, }, image: { // Bilder werden beim Build zu AVIF/WebP konvertiert. responsiveStyles: true, }, vite: { plugins: [tailwindcss()], }, });