【发布时间】:2019-12-31 08:26:34
【问题描述】:
我目前正在开发一个包含 i18n 的 Angular 8 应用程序。我选择了使用 2 个并行运行的独立构建/应用程序的 AOT 方法。其中一个是en,另一个是de。
对于 CI,我有一个管道,它使用 Dockerfile 来构建 2 个不同的构建配置,并将它们放在彼此相邻的 2 个文件夹中。在 2 个 Angular 应用程序前面,我有 nginx 根据 URL 重定向到它们各自的语言文件夹。
Dockerfile:
RUN yarn ng build frontend --configuration=en
RUN yarn ng build frontend --configuration=de
示例:
当我在myapp.com/en下访问我的CI部署时,nginx会访问en文件夹下的应用程序的索引文件。
Nginx 配置:
location / {
try_files $uri$args /en/index.html;
}
location /en/ {
alias /usr/share/nginx/html/en/;
try_files $uri$args $uri$args/ /en/index.html;
}
location /de/ {
alias /usr/share/nginx/html/de/;
try_files $uri$args $uri$args/ /de/index.html;
}
这一切都很好,而且效果很好,但现在是实际问题:
对于本地开发,我仍然希望能够使用类似的设置,其中我有两个单独的 AOT 编译的应用程序版本,但我正在寻找一种不使用 nginx 进行本地开发设置的方法。
有没有办法在仅以某种形式使用ng serve -c <locale> 时实现类似的 i18n 应用程序结构?
我知道我可以使用 nginx 在本地进行基本相同的设置并重定向到正确的文件夹,但如果可能的话我不想这样做,因此我不需要单独的 docker 设置(我有我不想在本地运行的 Dockerfile 中的许多其他内容)。
【问题讨论】:
标签: angular docker internationalization continuous-integration angular-i18n