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

soa*_*lue 6 vue.js nuxt.js

在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
},
]
Run Code Online (Sandbox Code Playgroud)

我需要从主机名中获取正确的对象元素,例如,如果我的网页的主机名是“local-1.domain.name”,那么我将获取 object {front_host: local-1.domain.com, backend_api: api-2.domain.com}

在nuxtjs中,如果网页在前端渲染,那么我可以通过 获取主机名location.host,如果在ssr(服务器端渲染),我如何获取主机名?

小智 5

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

例如,

export default {
     async asyncData ({ req, res }) {
        if (process.server) {
         return { host: req.headers.host }
        }
    }
Run Code Online (Sandbox Code Playgroud)

host 将是您的 ssr 主机名

  • 根据您的用例,它可能会出错。最好使用类似的东西: process.server ?req.headers.host : window.location.host (3认同)