忽略根 RouterModule 中的路径

eba*_*nin 2 angular angular-router

我正在使用 Angular 9。我在根目录中有一个 JSON 文件,我不想将其包含在应用程序中。换句话说:

/src
  |-- /app
  |-- /assets
  |-- index.html
  |-- do_not_include_this_file.json
Run Code Online (Sandbox Code Playgroud)

这意味着http://example.com/do_not_include_this_file.json应该被 RouterModule 忽略,而是直接转到文件。目前该路径将重定向到 PageNotFoundComponent,例如

/src
  |-- /app
  |-- /assets
  |-- index.html
  |-- do_not_include_this_file.json
Run Code Online (Sandbox Code Playgroud)

如何让 RouterModule 完全忽略路径?

cer*_*ner 5

您可以将“do_not_include_this_file.json”作为根目录中的静态文件提供。

检查 Angular 应用程序的根目录中是否有名为“angular.json”的文件。在“angular.json”中,您可以使用资产实体。您包含在资产值数组中的任何文件或目录都将静态提供。在此处添加您的静态文件。启用后,所有这些文件也将在生产环境中提供/复制到 dist 目录。

以下代码假设您的 src 文件夹中有“do_not_include_this_file.json”,并将其提供给输出中的根目录。

"projects": {
  "YourProject": {
      "root": "",
      ...
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            ...
            "assets": [
              ...
              {
                "glob": "do_not_include_this_file.json",
                "input": "src/",
                "output": "/"
              },
              ...
            ]
Run Code Online (Sandbox Code Playgroud)

这是一个了解更多信息的页面;https://angular.io/guide/workspace-config#asset-config