在NUXTJS 3中,如何根据请求域修改RuntimeConfig?

发布于 2025-02-03 05:13:18 字数 379 浏览 1 评论 0原文

我正在使用NUXT 3构建一个多域网站。

我正在尝试根据用户请求域加载其他RuntimeConfig,这可能吗?

例如,如果用户在mydomain.es中,

{
    privateToken : "XXXXXXXXX",
    public : {
        googleanalytics_id : 'xxxxx'
    }
}

如果用户在mydomain.fr中,

{
    privateToken : "YYYYYYYYYY",
    public : {
        googleanalytics_id : 'yyyyy'
    }
}

那是可能的吗?

I am building a multidomain site with nuxt 3.

I'm trying to load a different runtimeConfig based on the user request domain, is that possible?

For example, if the user is in mydomain.es

{
    privateToken : "XXXXXXXXX",
    public : {
        googleanalytics_id : 'xxxxx'
    }
}

If the user is in mydomain.fr

{
    privateToken : "YYYYYYYYYY",
    public : {
        googleanalytics_id : 'yyyyy'
    }
}

Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

再见回来 2025-02-10 05:13:18

我终于找到了这样做的方法,它不是很优雅,但它起作用...

at:插件/configbydomain.server.ts

import { loadConfig } from '../config/SiteConfig'

export default defineNuxtPlugin(async nuxtApp => {
    const domain = useRequestHeaders().host.split(':')[0];
    const SiteConfig = await loadConfig(domain);        
    // to make the object writable
    nuxtApp.ssrContext.runtimeConfig = JSON.parse(JSON.stringify(nuxtApp.ssrContext.runtimeConfig));    
    Object.assign(nuxtApp.ssrContext.runtimeConfig, SiteConfig);
})

I finally found a way to do this, it is not very elegant, but it works...

at: plugins/configByDomain.server.ts

import { loadConfig } from '../config/SiteConfig'

export default defineNuxtPlugin(async nuxtApp => {
    const domain = useRequestHeaders().host.split(':')[0];
    const SiteConfig = await loadConfig(domain);        
    // to make the object writable
    nuxtApp.ssrContext.runtimeConfig = JSON.parse(JSON.stringify(nuxtApp.ssrContext.runtimeConfig));    
    Object.assign(nuxtApp.ssrContext.runtimeConfig, SiteConfig);
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文