我喜欢使用vue.js,但对于一些即将到来的项目,我将需要使用Nuxt,以便在搜索引擎优化方面排名更好。我没有很多设置nuxt的经验,但我找到了很多关于如何提供运行Nuxt的快速应用程序的好教程。我通常将我的项目与firebase集成,用于身份验证和数据库以及云函数,所以我也会使用云函数来提供这些nuxt web应用程序。
但是..。设置一切并不是那么困难...在另一端的加载时间是可怕的,我觉得这使得任何用例都接近不可用。正常的网站/应用程序在网络连接良好时(几乎)会立即加载,但我的测试网站在显示页面之前会持续显示5- 10秒的白屏。
我认为这与云函数的冷启动有关,但接下来您将如何实现nuxt?我不明白另一种选择是什么,是吗?无法想象公司会喜欢如此长的加载时间(谷歌也不是)
我用Nuxt设置的一个快速演示项目:https://yke.plus/
我的函数代码:
const functions = require('firebase-functions')
const { Nuxt } = require('nuxt')
const express = require('express')
const app = express()
const config = {
dev: false
}
const nuxt = new Nuxt(config)
let isReady = false
const readyPromise = nuxt
.ready()
.then(() => {
isReady = true
})
.catch(() => {
process.exit(1)
})
async function handleRequest (req, res) {
if (!isReady) {
await readyPromise
}
res.set('Cache-Control', 'public, max-age=1, s-maxage=1')
await nuxt.render(req, res)
}
app.get('*', handleRequest)
app.use(handleRequest)
exports.nuxtssr = functions.https.onRequest(app)发布于 2021-05-01 06:35:47
可能会很晚,但请尝试将缓存控制更改为更高的值,如:
res.set('Cache-Control', 'public, max-age=15778476, s-maxage=15778476')
您还可以在firebase.json中配置静态资源的缓存控制:
"headers": [
...
{
"source": "**/*.@(jpg|jpeg|gif|png|css|js|ico|svg)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, s-maxage=31536000"
}
]
},
...
]https://firebase.google.com/docs/hosting/full-config?hl=pt-br#headers
https://stackoverflow.com/questions/61973767
复制相似问题