49 lines
1.4 KiB
JSON
49 lines
1.4 KiB
JSON
{
|
|
"version": 2,
|
|
"buildCommand": "npm ci && npm run build",
|
|
"outputDirectory": "dist/spa",
|
|
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
|
|
"headers": [
|
|
{
|
|
"source": "/assets/(.*)",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=31536000, immutable"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/(.*).(css|js|png|jpg|jpeg|gif|svg|webp|ico|woff2)",
|
|
"headers": [
|
|
{
|
|
"key": "Cache-Control",
|
|
"value": "public, max-age=31536000, immutable"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"source": "/api/(.*)",
|
|
"headers": [{ "key": "Cache-Control", "value": "no-store" }]
|
|
},
|
|
{
|
|
"source": "/(.*)",
|
|
"headers": [
|
|
{ "key": "X-Frame-Options", "value": "DENY" },
|
|
{ "key": "X-Content-Type-Options", "value": "nosniff" },
|
|
{
|
|
"key": "Referrer-Policy",
|
|
"value": "strict-origin-when-cross-origin"
|
|
},
|
|
{
|
|
"key": "Permissions-Policy",
|
|
"value": "geolocation=(), microphone=(), camera=()"
|
|
},
|
|
{
|
|
"key": "Content-Security-Policy",
|
|
"value": "default-src 'self' https: data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: blob: https:; font-src 'self' data: https:; connect-src 'self' https: wss:; frame-ancestors 'none'"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|