如何配置 nginx 进行 i18n 本地化,以便使用语言参数为应用程序提供服务?

如何配置 nginx 进行 i18n 本地化,以便使用语言参数为应用程序提供服务?

我确实有一个提供不同语言的角度应用程序,例如enes

使用以前的角度版本8.x,我必须nginx.conf根据 URL 中的参数语言提供正确的应用程序https://my-app/es,例如https://my-app/en

...
include /usr/share/nginx/nginx.lang.conf;

server {
    listen       8080;
    server_name  localhost;
    root   /usr/share/nginx/html;

    location / {
       try_files $uri /myapp/$lang/index.html =404;
    }

    location /myapp/assets/(.*) {
       try_files /myapp/$lang/assets/$1 =404;
    }
}

nginx.lang.conf这是我设置语言的部分:

map $http_accept_language $accept_lang {
  default insertDefaultLocale;
}

map $arg_locale $lang_param {
  default $accept_lang;
}

map $request_uri $lang {
  default $lang_param;
}

它确实按预期工作了。

但是现在我确实将应用程序升级到了版本 10,并且我使用了以下构建命令:ng build --localize --output-path=dist --prod该命令生成/en/es在下面创建文件夹/dist以构建应用程序的不同语言。

不幸的是,我无法使用特定语言(例如my-app/en和/或)调用应用程序my-app/es。这是一个空白页,因为它没有获取资产的正确路径,而资产路径应该是例如:/my-app/es/stylesxxxxx.css/my-app/es/mainxxxxxxxx.js。我得到的是一条不包含语言路径的资产路径。例如/my-app/stylesxxxxx.css /my-app/mainxxxxxxxx.js

我应该添加和/或更改资产的正确路径以及特定语言的特定应用程序。

相关内容