56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
# Static JSON data — cached 24h at the edge, revalidated on deploy
|
|
/components.json
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
# Tiny per-type counts (sidebars, plugins pages) — same 24h cache
|
|
/counts.json
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
# Per-type index slices (grid loads only the active type)
|
|
/components/*
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
# Flat search index for the global (Cmd+K) search
|
|
/search-index.json
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
/component-content/*
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
/plugins.json
|
|
Cache-Control: public, max-age=86400, stale-while-revalidate=3600
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
/trending-data.json
|
|
Cache-Control: public, max-age=3600, stale-while-revalidate=300
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
/claude-jobs.json
|
|
Cache-Control: public, max-age=3600, stale-while-revalidate=300
|
|
Access-Control-Allow-Origin: *
|
|
Access-Control-Allow-Methods: GET
|
|
|
|
# Astro hashed assets — immutable forever (hash changes on content change)
|
|
/_astro/*
|
|
Cache-Control: public, max-age=31536000, immutable
|
|
|
|
# Security headers — applied to all routes
|
|
/*
|
|
X-Content-Type-Options: nosniff
|
|
X-Frame-Options: DENY
|
|
Referrer-Policy: strict-origin-when-cross-origin
|
|
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
|
Permissions-Policy: camera=(), microphone=(), geolocation=()
|