首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不增加加载时间的情况下使用云函数提供的Nuxt.js?

如何在不增加加载时间的情况下使用云函数提供的Nuxt.js?
EN

Stack Overflow用户
提问于 2020-05-23 22:43:14
回答 1查看 122关注 0票数 1

我喜欢使用vue.js,但对于一些即将到来的项目,我将需要使用Nuxt,以便在搜索引擎优化方面排名更好。我没有很多设置nuxt的经验,但我找到了很多关于如何提供运行Nuxt的快速应用程序的好教程。我通常将我的项目与firebase集成,用于身份验证和数据库以及云函数,所以我也会使用云函数来提供这些nuxt web应用程序。

但是..。设置一切并不是那么困难...在另一端的加载时间是可怕的,我觉得这使得任何用例都接近不可用。正常的网站/应用程序在网络连接良好时(几乎)会立即加载,但我的测试网站在显示页面之前会持续显示5- 10秒的白屏。

我认为这与云函数的冷启动有关,但接下来您将如何实现nuxt?我不明白另一种选择是什么,是吗?无法想象公司会喜欢如此长的加载时间(谷歌也不是)

我用Nuxt设置的一个快速演示项目:https://yke.plus/

我的函数代码:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-01 06:35:47

可能会很晚,但请尝试将缓存控制更改为更高的值,如:

res.set('Cache-Control', 'public, max-age=15778476, s-maxage=15778476')

您还可以在firebase.json中配置静态资源的缓存控制:

代码语言:javascript
复制
"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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61973767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档