При развертывании моего универсального приложения Nuxt JS на Zeit Now я пытался воспользоваться преимуществом заголовка Zeit Cache-Control
, который упоминается в Zeit Cache Doc .
Затем я попытался найти способ добавить заголовок Cache-Control
в свое приложение Nuxt JS и, к счастью, обнаружил эту проблему GitHub , которая объясняла то же самое.
Теперь, когда я в любом случае использовал serverMiddleware
в своем приложении Nuxt для получения данных текущего вошедшего в систему пользователя, используя firebase-admin
, я подумал, что легко добавлю заголовок ответа в свой код, и я это сделал. В моем /serverMiddleware/handleCookie.js
у меня это выглядит так:
const Cookies = require('cookies')
const admin = require('../services/firebase-admin-init')
export default async (req, res, next) => {
res.setHeader('Cache-Control', 's-maxage=1000, stale-while-revalidate')
try {
const authUser = await verifyCookie(req, res)
if (authUser) {
const userData = await fetchUserDetailsFromFirestore(
req,
authUser.uid,
authUser.email_verified
)
if (userData) {
next()
}
} else {
next()
}
} catch (error) {
console.error(error)
}
}
Теперь сумасшедшая вещь, когда я запускаю dev т.е. yarn nuxt
и проверяю свой сайт через localhost, я легко вижу добавленный заголовок в Chrome NetworkИнструмент.
![header showing up in localhost](https://i.stack.imgur.com/euMjn.jpg)
Но когда я отправляю свой проект в Zeit Now для хостинга с использованием now --prod
и проверяю свой фактический сайт, я не вижу этот заголовок.
![no header in production](https://i.stack.imgur.com/t9YuW.jpg)
Теперь я не понимаю, делаю ли я что-то не так, потому что если я это сделал, это не должно было появиться в ответе разработчика localhost. заголовок. Я трачу много дней, пытаясь это исправить, но никуда не ушел. Не знаю, почему это происходит. Я также использую nuxt / now-builder для развертывания Zeit, и вот мой файл now.json
.
{
"version": 2,
"regions": ["bom1"],
"builds": [
{
"src": "nuxt.config.js",
"use": "@nuxtjs/now-builder",
"config": {
"serverFiles": [
"services/firebase-admin-init.js",
"serverMiddleware/**"
]
}
}
]
}
Если кто-то может помочь в этом вопросе, было бы очень полезно.