nuxt js,如何在服务器端渲染时获取网页的主机名

问题描述 投票:0回答:3

在 nuxtjs poroject,我有一个像这样的 api 环境的配置变量:

[
{
  front_host: local-1.domain.com,
  backend_api: api-1.domain.com
},
{
  front_host: local-2.domain.com,
  backend_api: api-2.domain.com
},
]

我需要从主机名中获取正确的对象元素,例如,如果我的网页的主机名是“local-1.domain.name”,那么我将获取该对象

{front_host: local-1.domain.com, backend_api: api-2.domain.com}

在nuxtjs中,如果网页在前端渲染,那么我可以通过

location.host
获取主机名,如果在ssr(服务器端渲染),我如何获取主机名?

vue.js nuxt.js
3个回答
11
投票

就像@divine所说,您可以选择多种选项。

例如,

export default {
     async asyncData ({ req, res }) {
        if (process.server) {
         return { host: req.headers.host }
        }
    }

host 将是你的 ssr 主机名


0
投票

像下面这样的东西应该适合你

asyncData ({ req, res }) {
  const hostname = req ? req.headers.host : window.location.host.split(':')[0]
}

0
投票

在 nuxt 3 中,你还可以使用:

const url = useRequestURL()
console.log('host name', url.hostname)

参见:https://nuxt.com/docs/api/composables/use-request-url

© www.soinside.com 2019 - 2024. All rights reserved.