您的位置:MYSQL中文网 > angular 部署 Angular 部署多个语言环境

angular 部署 Angular 部署多个语言环境

2023-05-28 09:30 Angular13

angular 部署 Angular 部署多个语言环境

angular 部署

Angular 是一个强大的前端框架,它可以帮助开发者快速构建出高质量的 Web 应用程序。但是,在部署 Angular 应用程序之前,我们需要了解一些基本的部署步骤。

Angular 部署的第一步是将 Angular 应用编译为 JavaScript 代码。这可以通过使用 Angular CLI 来完成,它可以帮助我们将 TypeScript 代码转换为 JavaScript 代码。要使用 Angular CLI 进行部署,我们需要在命令行中运行 ng build 命令:

ng build --prod

该命令会生成一个 dist 目录,其中包含了所有已生成的文件。这些文件就是我们要部署到服务器上的文件。

在将文件部署到服务器之前,我们还需要对其进行优化。Angular CLI 提供了一个叫做“AoT”(Ahead-of-Time) 的优化工具来帮助我们优化应用程序代码。AoT 优化工具可以帮助减少应用程序体积并提升性能。要使用 AoT 优化工具,我们需要在命令行中运行 ng build --aot 命令:

ng build --prod --aot

该命令会生成一个 dist 目录,其中包含了所有已优化的文件。然后就可将 dist 目录中的文件上传到服务器上去了。

在上传完文

Angular 部署多个语言环境

部署多个语言环境

如果 ​myapp ​是包含项目可分发文件的目录,你通常会在语言环境目录中为不同的语言环境提供不同的版本,比如法语版的 ​myapp/fr​ 和西班牙语版的 ​myapp/es​。

带有 ​href​ 属性的 HTML ​base ​标签指定了相对链接的基本 URI 或 URL。如果你将工作空间构建配置文件 ​angular.json​ 中的 ​"localize"​ 选项设置为 ​true ​或语言环境 ID 数组,CLI 会为应用程序的每个版本调整 base ​href​。要为应用程序的每个版本调整 base ​href​,CLI 会将语言环境添加到配置的 ​"baseHref"​ 中。在工作区配置文件 ​angular.json​ 中为每个语言环境指定 ​"baseHref"​。以下示例展示了设置为空字符串的 ​"baseHref"​。

"projects": {
    "angular.io-example": {
      // ...
      "i18n": {
        "sourceLocale": "en-US",
        "locales": {
          "fr": {
            "translation": "src/locale/messages.fr.xlf",
            "baseHref": ""
          }
        }
      },
      "architect": {
        // ...
      }
    }
  }
  // ...
}

此外,要在编译时声明 base ​href​,请将在 CLI 中使用带有 ​--baseHref​ 选项的 ​ng build​ 。

配置服务器

多语言的典型部署方式是为来自不同子目录的每种语言提供服务。使用 ​Accept-Language​ HTTP 标头将用户重定向到浏览器中定义的首选语言。如果用户未定义首选语言,或者首选语言不可用,则服务器将回退到默认语言。要更改语言,就转到另一个子目录。 子目录的更改通常使用应用程序中实现的菜单进行。

Nginx 范例

以下示例展示了 Nginx 配置。

http {
    # Browser preferred language detection (does NOT require
    # AcceptLanguageModule)
    map $http_accept_language $accept_language {
        ~*^de de;
        ~*^fr fr;
        ~*^en en;
    }
    # ...
}

server {
    listen 80;
    server_name localhost;
    root /www/data;

    # Fallback to default language if no preference defined by browser
    if ($accept_language ~ "^$") {
        set $accept_language "fr";
    }

    # Redirect "/" to Angular application in the preferred language of the browser
    rewrite ^/$ /$accept_language permanent;

    # Everything under the Angular application is always redirected to Angular in the
    # correct language
    location ~ ^/(fr|de|en) {
        try_files $uri /$1/index.html?$args;
    }
    # ...
}

Apache 范例

以下示例展示了 Apache 配置。

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /www/data
    <Directory "/www/data">
        RewriteEngine on
        RewriteBase /
        RewriteRule ^../index.html$ - [L]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (..) $1/index.html [L]

        RewriteCond %{HTTP:Accept-Language} ^de [NC]
        RewriteRule ^$ /de/ [R]

        RewriteCond %{HTTP:Accept-Language} ^en [NC]
        RewriteRule ^$ /en/ [R]

        RewriteCond %{HTTP:Accept-Language} !^en [NC]
        RewriteCond %{HTTP:Accept-Language} !^de [NC]
        RewriteRule ^$ /fr/ [R]
    </Directory>
</VirtualHost>


阅读全文
以上是MYSQL中文网为你收集整理的angular 部署 Angular 部署多个语言环境全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 MYSQL中文网 mysqlcn.com 版权所有 联系我们
桂ICP备12005667号-29 Powered by CMS