![如何配置 nginx 进行 i18n 本地化,以便使用语言参数为应用程序提供服务?](https://linux22.com/image/757239/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20nginx%20%E8%BF%9B%E8%A1%8C%20i18n%20%E6%9C%AC%E5%9C%B0%E5%8C%96%EF%BC%8C%E4%BB%A5%E4%BE%BF%E4%BD%BF%E7%94%A8%E8%AF%AD%E8%A8%80%E5%8F%82%E6%95%B0%E4%B8%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8F%90%E4%BE%9B%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
我确实有一个提供不同语言的角度应用程序,例如en
和es
。
使用以前的角度版本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
。
我应该添加和/或更改资产的正确路径以及特定语言的特定应用程序。