something new
This commit is contained in:
parent
446ac598c5
commit
cf0ec8dcca
32
api/edge-ssr.mjs
Normal file
32
api/edge-ssr.mjs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import { renderPage } from 'vike/server'
|
||||||
|
|
||||||
|
export const config = {
|
||||||
|
runtime: 'edge'
|
||||||
|
}
|
||||||
|
export default async function handler(request) {
|
||||||
|
const { url, cookies } = request
|
||||||
|
|
||||||
|
const pageContext = await renderPage({ urlOriginal: url, cookies })
|
||||||
|
|
||||||
|
const { httpResponse, errorWhileRendering, is404 } = pageContext
|
||||||
|
|
||||||
|
if (errorWhileRendering && !is404) {
|
||||||
|
console.error(errorWhileRendering)
|
||||||
|
return new Response('', { status: 500 })
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!httpResponse) {
|
||||||
|
return new Response()
|
||||||
|
}
|
||||||
|
|
||||||
|
const { body, statusCode, headers: headersArray } = httpResponse
|
||||||
|
|
||||||
|
const headers = headersArray.reduce((acc, [name, value]) => {
|
||||||
|
acc[name] = value
|
||||||
|
return acc
|
||||||
|
}, {})
|
||||||
|
|
||||||
|
headers['Cache-Control'] = 's-maxage=1, stale-while-revalidate'
|
||||||
|
|
||||||
|
return new Response(body, { status: statusCode, headers })
|
||||||
|
}
|
|
@ -1,8 +1,5 @@
|
||||||
import { renderPage } from 'vike/server'
|
import { renderPage } from 'vike/server'
|
||||||
|
|
||||||
export const config = {
|
|
||||||
runtime: 'edge'
|
|
||||||
}
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const { url, cookies } = req
|
const { url, cookies } = req
|
||||||
|
|
||||||
|
@ -27,7 +24,7 @@ export default async function handler(req, res) {
|
||||||
|
|
||||||
res.statusCode = statusCode
|
res.statusCode = statusCode
|
||||||
|
|
||||||
// headers.forEach(([name, value]) => res.setHeader(name, value))
|
headers.forEach(([name, value]) => res.setHeader(name, value))
|
||||||
res.setHeader('Cache-Control', 's-maxage=1, stale-while-revalidate')
|
res.setHeader('Cache-Control', 's-maxage=1, stale-while-revalidate')
|
||||||
res.end(body)
|
res.end(body)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"rewrites": [
|
"rewrites": [
|
||||||
{
|
{
|
||||||
"source": "/((?!assets/).*)",
|
"source": "/((?!assets/).*)",
|
||||||
"destination": "/api/ssr.mjs"
|
"destination": "/api/edge-ssr.mjs"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user