首页 > 解决方案 > Angular i18n 在切换语言时不理解路由

问题描述

我正在使用 Angular 中的 i18n。我已经成功地为每种语言构建了 2 个文件夹并开始使用 Docker 运行。它适用于默认语言,但在切换语言时,我继续编辑 URL,例如 localhost 到 localhost/en。我收到一个错误:

Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'en'
Error: Cannot match any routes. URL Segment: 'en'

这是我的 Nginx 配置文件:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    server {
        listen 80;
        server_name  localhost;

        root   /usr/share/nginx/html;
        index  index.html;
        include /etc/nginx/mime.types;

        gzip on;
        gzip_min_length 1000;
        gzip_proxied expired no-cache no-store private auth;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        location / {
            alias   /usr/share/nginx/html/fr/;
            try_files $uri $uri/ /fr/index.html;
        }

        location /fr/ {
            alias   /usr/share/nginx/html/fr/;
            try_files $uri $uri/ /fr/index.html;
        }

        location /en/ {
            alias   /usr/share/nginx/html/en/;
            try_files $uri $uri/ /en/index.html;
        }
    }
}

另外,我在构建后有这样的 dict 目录结构:

/dict
----web
    ----fr
    ----en

我该如何解决?

标签: angularnginxinternationalizationdocker-build

解决方案


推荐阅读