【问题标题】:nuxt js, how can I get the host name of a web page at server side renderingnuxt js,如何在服务器端渲染时获取网页的主机名
【发布时间】:2018-05-02 09:49:34
【问题描述】:

在 nuxtjs 项目中,我有一个这样的 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(服务器端渲染),我如何获取主机名?

【问题讨论】:

  • 像 asyncData, fetch, nuxtServerInit 这样的函数很少,这些方法在服务器端执行。您也可以尝试使用中间件。

标签: vue.js nuxt.js


【解决方案1】:

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

例如,

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

host 将是您的 ssr 主机名

【讨论】:

  • 根据您的用例,它可能会出错。最好使用类似的东西: process.server ? req.headers.host : window.location.host
猜你喜欢
  • 2020-12-22
  • 2014-08-09
  • 2018-09-23
  • 2021-01-01
  • 2016-03-24
  • 2020-11-01
  • 2019-01-24
  • 2021-02-03
  • 2019-08-17
相关资源
最近更新 更多