gpt4 book ai didi

Firebase 托管 SPA 的 : How to prevent caching for the index. html

转载 作者:行者123 更新时间:2023-12-03 11:34:31 26 4
gpt4 key购买 nike

我在 firebase 上托管一个 SPA,其中几乎所有路径都被重写为 index.html .我正在使用基于 webpack 哈希的缓存清除,所以我想总是防止缓存我的 index.html但不是任何其他文件。我发现这样做非常困难。具体来说,我的文件布局是这样的

/
├── index.html
├── login.html
├── js
│ ├── login.ba22ef2579d744b26c65.bundle.js
│ └── main.6d0ef60e45ae7a11063c.bundle.js
└── public
└── favicon-16x16.ico

我天真地开始使用 "sources": "index.html"在阅读文档中的此引用之前。

Each definition must have a source key that is matched against the original request path regardless of any rewrite rules using glob notation.



好的,所以不是一个简单的 glob 指定我想要这些标题的文件,我想我需要一个关于路径的。由于大多数路径重定向到 index.html,我需要一个排除所有我不想放置这些标题的路径的 glob。

供引用,我的 firebase.json托管部分如下所示:
{
"hosting": {
"public": "dist",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"cleanUrls": true,
"trailingSlash": false,
"headers": [
{
"source": <<<WHAT-GOES-HERE?>>>,
"headers": [
{
"key": "Cache-Control",
"value": "no-cache, no-store, must-revalidate"
},
{
"key": "Pragma",
"value": "no-cache"
},
{
"key": "Expires",
"value": "0"
}
]
}
]
}
}

所以,举一些重定向到 index.html 并且不应该被缓存的例子
mysite.com  
mysite.com/
mysite.com/foo/bar/baz
mysite.com/index.html

注意:如果最后一个被缓存,我可以活下去,因为它在实践中没有被使用。

以及不重定向到 index.html 且不应缓存的内容
**/*.* (ideally excluding index.html)
mysite.com/login

我自己得到的最接近的是 **/!(login|*.*)它几乎适用于上面列出的所有内容,但莫名其妙地不适用于 mysite.commysite.com/ .这两个页面没有被这个 glob 匹配,我不知道为什么。

最佳答案

这是我正在使用的配置。逻辑是对所有静态文件使用缓存,如 images, css, js等等。对于所有其他人,即 "source": "/**"将缓存设置为无缓存。因此,对于所有其他文件,可能不会应用 example.com、example.com/index.html、example.com/about-us、example.com/about-us.html 缓存。

{
"hosting": {
"public": "dist",
"headers": [
{
"source": "/**",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache, no-store, must-revalidate"
}
]
},
{
"source":
"**/*.@(jpg|jpeg|gif|png|svg|webp|js|css|eot|otf|ttf|ttc|woff|woff2|font.css)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800"
}
]
}
],
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
}
}

关于Firebase 托管 SPA 的 : How to prevent caching for the index. html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48589821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com