【问题标题】:How can i get the full url in a Nuxt plugin?如何在 Nuxt 插件中获取完整的 url?
【发布时间】:2021-09-17 09:59:41
【问题描述】:

我无法访问包含所有内容的 nuxt js 插件中的 url。简而言之:网址中有一部分向我展示了人们正在访问的国家/地区以及应在 api 调用中使用该国家/地区。

window.location 不起作用,因为它是 SSR 并且那里没有可用的窗口。

req.headers.host 不起作用,因为 nuxt generate 已在 staging/production 上运行

编辑:路由对象不会给我关于域的任何信息。之后只有部分。例如www.test.nl/about 它不会在任何地方返回www.test.nl

有没有办法在这种情况下获得完整的网址?

【问题讨论】:

  • 上下文中有 $route 或 $router(或不带 $ 符号)对象:export default function ({ $route }) {...}
  • 路由对象不会在任何地方返回域,所以我也不能使用它
  • req.hostname 呢?

标签: nuxt.js


【解决方案1】:

如果真的是关于host,您可以使用process.client 检查来包装您的插件代码。这样您的代码只会在客户端上执行,您可以安全地使用window.location.host。

如果没有主机的当前路由足够,您可以使用route 对象,它是传递给您的插件的上下文对象的一部分(适用于服务器和客户端)。

export default function ({ route }) {
  if (process.client) {
    console.log(window.location.host)
  }

  console.log(route)
}

【讨论】:

  • 问题是我需要域名,而 rout 对象只提供信息。例如,使用 www.test.nl/about 我需要访问 www.test.nl 部分,而路由只会给我 /about
  • 然后我会去process.client检查并使用window.location对象。这应该符合你的需要吧?
  • 不会触发,因为渲染页面都是ssr
  • 那么您在 nuxt-config 中定义了什么目标,代码应该在客户端、服务器还是两者上运行?
猜你喜欢
  • 2019-04-08
  • 2012-04-28
  • 2015-03-11
  • 2016-07-05
  • 1970-01-01
  • 2013-06-08
  • 2017-06-06
  • 2015-10-28
相关资源
最近更新 更多