110 lines
2.5 KiB
TOML
110 lines
2.5 KiB
TOML
[build]
|
|
publish = "dist"
|
|
command = "pnpm run build"
|
|
|
|
# Redirects for Astro static assets
|
|
[[redirects]]
|
|
from = "/_astro/*"
|
|
to = "/_astro/:splat"
|
|
status = 200
|
|
|
|
# Enable Brotli Compression
|
|
[build.processing]
|
|
skip_processing = false
|
|
[build.processing.css]
|
|
bundle = true
|
|
minify = true
|
|
[build.processing.js]
|
|
bundle = true
|
|
minify = true
|
|
[build.processing.html]
|
|
pretty_urls = true
|
|
|
|
# Global headers
|
|
[[headers]]
|
|
for = "/*"
|
|
[headers.values]
|
|
X-Frame-Options = "SAMEORIGIN"
|
|
X-Content-Type-Options = "nosniff"
|
|
Referrer-Policy = "strict-origin-when-cross-origin"
|
|
Permissions-Policy = "geolocation=(), microphone=(), camera=(), fullscreen=(self)"
|
|
Content-Security-Policy = "default-src 'self'; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https: blob:; font-src 'self' data: https:; frame-src https: player.bilibili.com; connect-src 'self' https:; object-src 'none'; worker-src 'self' blob:; child-src 'self' blob: player.bilibili.com;"
|
|
|
|
# HTML pages
|
|
[[headers]]
|
|
for = "/*.html"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=86400, s-maxage=172800"
|
|
Vary = "Accept-Encoding"
|
|
|
|
# Blog posts
|
|
[[headers]]
|
|
for = "/*/"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=86400, s-maxage=172800"
|
|
Vary = "Accept-Encoding"
|
|
|
|
# Homepage
|
|
[[headers]]
|
|
for = "/"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=1800, s-maxage=3600"
|
|
Vary = "Accept-Encoding"
|
|
|
|
# Static assets
|
|
[[headers]]
|
|
for = "/fonts/*"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/_astro/*"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/assets/*"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/*.css"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/*.js"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
# Images
|
|
[[headers]]
|
|
for = "/*.jpg"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/*.png"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
[[headers]]
|
|
for = "/*.webp"
|
|
[headers.values]
|
|
Cache-Control = "public, max-age=31536000, immutable"
|
|
Vary = "Accept-Encoding"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|