【发布时间】:2020-03-19 18:25:01
【问题描述】:
我在 Firebase 上托管的 Gatsby 网站的部署过程有些复杂,因此我使用 Gatsby Cloud 构建网站并将其部署到 Firebase。我有一组缓存控制规则,我希望站点在部署到 Firebase 时使用这些规则,这些规则位于 firebase.json 文件中(如下所示)。当我从本地计算机部署站点时它工作正常,但是当 Gatsby Cloud 构建并部署到 firebase 时,它似乎忽略了 firebase.json 文件,而支持我看不到的其他配置,因此缓存控制规则被忽略。知道如何让 Gatsby Cloud 尊重我的 firebase.json 文件吗?
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
},
"hosting": {
"public": "public",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"headers": [
{
"source": "**/*",
"headers": [
{
"key": "cache-control",
"value": "cache-control: public, max-age=0, must-revalidate"
}
]
},
{
"source": "static/**",
"headers": [
{
"key": "cache-control",
"value": "public, max-age=31536000, immutable"
}
]
},
{
"source": "**/*.@(css|js)",
"headers": [
{
"key": "cache-control",
"value": "public, max-age=31536000, immutable"
}
]
},
{
"source": "sw.js",
"headers": [
{
"key": "cache-control",
"value": "cache-control: public, max-age=0, must-revalidate"
}
]
},
{
"source": "page-data/**",
"headers": [
{
"key": "cache-control",
"value": "cache-control: public, max-age=0, must-revalidate"
}
]
}
]
},
"storage": {
"rules": "storage.rules"
},
"emulators": {
"functions": {
"port": 5001
}
}
}
【问题讨论】: