基于基于Nginx的变量提供不同的页面

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

我有一个i18n的nuxt generate JAMStack网站。生成的页面位于enru文件夹中。我正在计算用户的语言环境并从相应的文件夹提供内容:

map $http_accept_language $fallback_lang {
    ~en en;
    ~ru ru
    default en;
}

map $cookie_i18n_redirected $lang {
    en en;
    ru ru;
    default $fallback_lang;
}

server {
    location / {
        root /var/www/html;
        rewrite ^/(.*)/$ /$1 permanent;
        try_files /$lang/$uri /$lang/$uri/index.html =404;
    }
}

俄语首页位于/ru/index.html中,但是英文版没有这样的页面,并且如果/en/archive/index.htmlGET /,我想提供$lang作为'en'的响应。我该怎么办?

nginx nuxt.js jamstack nuxt-i18n
1个回答
0
投票

您也许可以利用extendRoutes中的内置nuxt.config.js

在您的nuxt.config.js文件中:

// nuxt.config.js
  ...

  router: {
    ...
    extendRoutes(routes, resolve) {
      routes.push({
        path: '/',
        component: resolve(__dirname, 'pages/en/archive/index.vue')
      });
    }
    ...
  },

这将允许您在应用程序级别根据传入的路由路由到特定的nuxt页面。

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