利用浏览器缓存 - Firebase/Angular 5
Leverage browser caching - Firebase/Angular 5
我 运行 我的 Angular 5 站点通过 Google 的 PageSpeed Insights,它咆哮着利用浏览器缓存,列出了以下文件:
https://use.typekit.net/####.css (10 minutes)
https://www.googletagmanager.com/gtm.js?id=GTM-#### (15 minutes)
https://####.firebaseapp.com/assets/svgs/###.svg (60
minutes)
这是我的 firebase.json 文件的格式:
{
"hosting": {
"public": "dist",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [
{
"source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
]
},
{
"source": "**/*.@(js|css)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800"
}
]
},
{
"source": "**/*.@(jpg|jpeg|gif|png|svg)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800"
}
]
},
{
"source": "404.html",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=300"
}
]
}
]
},
"functions": {
"predeploy": [
"npm --prefix $RESOURCE_DIR run lint"
],
"source": "functions"
}
}
大部分代码基于以下 post:
但是,它似乎不起作用。重新运行 PageSpeed Insights 时,我仍然遇到同样的错误。我该如何解决这个问题?我是 Angular 的新手,因此不胜感激。提前致谢!
有2个解法
1。从您的域提供外部文件。
下载以下 3 个文件并从您自己的应用程序提供它们。这样你就可以控制缓存时间。确保在更新时保留第 3 方 css 和 js 的更新副本。
https://use.typekit.net/####.css (10 minutes) .
https://www.googletagmanager.com/gtm.js?id=GTM-#### (15 minutes) .
https://####.firebaseapp.com/assets/svgs/###.svg (60
minutes)
2。 Google 速度测试
的黑客修复
请理解 Google 速度测试只是一个建议,您无需严格遵守。 https://www.webpagetest.org/ 等其他一些工具可能会给您带来更好的结果。
但是,如果浏览器代理不是 Google Speed Insight,您可以使用以下 hack 动态包含受影响的 css 和 js。对于Google 速度测试,受影响的资源不会加载,从而在速度测试中获得更好的分数。
<script>
if (navigator.userAgent.indexOf("Speed Insights")==-1) {
...
...
</script>
您可以安全地忽略来自 Google PageSpeed(以及 lightouse ... 和类似工具)的这 3 条建议。
事实上,具有讽刺意味的是,许多从 Google CDN 提供的文件(例如字体)在 Google PageSpeed 和其他工具(例如灯塔)。
当然我认为 Google 应该对这些工具做些什么,他们应该考虑到这一点。
Google PageSpeed 不是要在某种比赛中获得第一名或获得 100 分……它只是我们表现如何的一般(和基本)指标。有时它表示您没有问题,有时则表示您没有问题。
问题是当 SEO "specialist" 与这些检查的结果一起出现时(我认为许多开发人员都可以理解......)。
请Google做点什么!
我 运行 我的 Angular 5 站点通过 Google 的 PageSpeed Insights,它咆哮着利用浏览器缓存,列出了以下文件:
https://use.typekit.net/####.css (10 minutes)
https://www.googletagmanager.com/gtm.js?id=GTM-#### (15 minutes)
https://####.firebaseapp.com/assets/svgs/###.svg (60
minutes)
这是我的 firebase.json 文件的格式:
{
"hosting": {
"public": "dist",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [
{
"source": "**/*.@(eot|otf|ttf|ttc|woff|font.css)",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
]
},
{
"source": "**/*.@(js|css)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800"
}
]
},
{
"source": "**/*.@(jpg|jpeg|gif|png|svg)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800"
}
]
},
{
"source": "404.html",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=300"
}
]
}
]
},
"functions": {
"predeploy": [
"npm --prefix $RESOURCE_DIR run lint"
],
"source": "functions"
}
}
大部分代码基于以下 post:
但是,它似乎不起作用。重新运行 PageSpeed Insights 时,我仍然遇到同样的错误。我该如何解决这个问题?我是 Angular 的新手,因此不胜感激。提前致谢!
有2个解法
1。从您的域提供外部文件。
下载以下 3 个文件并从您自己的应用程序提供它们。这样你就可以控制缓存时间。确保在更新时保留第 3 方 css 和 js 的更新副本。
https://use.typekit.net/####.css (10 minutes) .
https://www.googletagmanager.com/gtm.js?id=GTM-#### (15 minutes) .
https://####.firebaseapp.com/assets/svgs/###.svg (60
minutes)
2。 Google 速度测试
的黑客修复请理解 Google 速度测试只是一个建议,您无需严格遵守。 https://www.webpagetest.org/ 等其他一些工具可能会给您带来更好的结果。 但是,如果浏览器代理不是 Google Speed Insight,您可以使用以下 hack 动态包含受影响的 css 和 js。对于Google 速度测试,受影响的资源不会加载,从而在速度测试中获得更好的分数。
<script>
if (navigator.userAgent.indexOf("Speed Insights")==-1) {
...
...
</script>
您可以安全地忽略来自 Google PageSpeed(以及 lightouse ... 和类似工具)的这 3 条建议。
事实上,具有讽刺意味的是,许多从 Google CDN 提供的文件(例如字体)在 Google PageSpeed 和其他工具(例如灯塔)。
当然我认为 Google 应该对这些工具做些什么,他们应该考虑到这一点。
Google PageSpeed 不是要在某种比赛中获得第一名或获得 100 分……它只是我们表现如何的一般(和基本)指标。有时它表示您没有问题,有时则表示您没有问题。
问题是当 SEO "specialist" 与这些检查的结果一起出现时(我认为许多开发人员都可以理解......)。
请Google做点什么!