我不能在这里使用 window.location,因为它是 SSR 应用程序。 useRouter、useRoute 和 useNuxtApp 也没有域名。 nuxtApp.ssrContext 未定义。
export default defineNuxtRouteMiddleware((to: any, from: any) => {
console.log("GET HOST HERE")
})
最佳答案
我只是错过了在获取 nuxtApp.ssrContext 之前检查 process.server。这是我的问题的答案:
export default defineNuxtRouteMiddleware((to: any, from: any) => {
const nuxtApp = useNuxtApp()
let host = ''
if(process.server) {
// for 3.0.0.rc_vercions: host = nuxtApp.ssrContext.req.headers.host
// UPD 27.01.23:
host = nuxtApp.ssrContext?.event.node.req.headers.host
} else {
host = window.location.host
}
})
https://stackoverflow.com/questions/72252942/