Angular 4 环境特定 robots.txt

Angular 4 environment specific robots.txt

是否可以根据构建环境(dev、stage、prod)加载特定于环境的资产。我在 .angular-cli.json 中的资产配置如下所示:

"assets": [
   "assets",
   "favicon.ico",
   "web.config",
   "188e5a3d.png",
   "robots.txt"
  ],

我需要根据构建环境加载不同的 robots.txt 文件。我没有 运行 Apache 服务器上的应用程序,所以我没有 htaccess 文件来进行一些配置。

谢谢。

您可以将所有不同的 robots.txt 文件保存在资产中,并为每个环境创建多个环境文件。

例如产品:environment.prod.ts、environment.stage.ts

和angular-cli.json为这些文件添加配置

在 environment.prod.ts 文件中添加产品配置的 URL robots.txt url.

您可以在 constants.ts lik roboturl 中访问这些 url:environment.robotUrl.

它将根据构建配置获得 url

有多种方法可以针对不同的环境实现不同的 robots.txt。

  • 最常见的方式

您可以创建所有不同的 robots.txt,例如 robots.txt、robots-staging.txt 和 robots-prod.txt。

并且在 angular.json 中,您可以在构建应用取决于构建模式。

{
  "$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "angular": {
      "root": "",
      "projectType": "application",
      "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/app/browser",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.browser.json",
            "deployUrl": "/",
            "assets": [
              {
                "glob": "favicon.ico",
                "input": "src",
                "output": "/"
              },
              {
                "glob": "robots.txt",
                "input": "src",
                "output": "/"
              },
              {
                "glob": "**/*",
                "input": "src/assets",
                "output": "/assets"
              }
            ],
            "styles": [
              "src/styles.scss",
            ],
            "scripts": [
              "src/assets/js/bootstrap-select.min.js",
            ]
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                },
                {
                  "replace": "src/robots.txt",
                  "with": "src/robots-prod.txt"
                }
              ],
              ...
            }
          }
        },
        ...
}
  • 部署管道

在这种情况下,您可以使用 CI/CD 工具来创建或更改 robots.txt。

您可以参考相关文档中的操作方法。

希望对您有所帮助!