【问题标题】:Angular: how to add a unique .htaccess file per configuration?Angular:如何为每个配置添加一个唯一的 .htaccess 文件?
【发布时间】:2018-06-19 13:40:59
【问题描述】:

我的 Angular 应用包含 2 个构建配置:暂存和生产。


目前我有一个适用于所有构建的标准 .htaccess 文件,方法是将其包含在我的资产中:

"assets": [
  "src/.htaccess",
  "src/assets",
  "src/favicon.png"
],

我想使用 .htpasswd 文件对我的暂存构建目录进行密码保护,因此我更新了我的资产以包含它:

"assets": [
  "src/.htaccess",
  "src/.htpasswd"
  "src/assets",
  "src/favicon.png"
],

htpasswd 文件可以包含在每个构建中,因为在 .htaccess 文件中没有提及,它什么都不做。


然后,我创建了第二个 .htaccess 文件,名为 .htaccess.dev,并添加了以下行:

AuthName "Protected"
AuthUserFile /home/admin/domains/dev.***.com/public_html/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
require valid-user

这个带有额外行的文件应该替换临时构建中的.htaccess 文件,所以我将以下配置添加到我的angular.json 文件中:

"build": {
  ...
  "configurations": {
    "staging": {
      ...
      "fileReplacements": [
        {
          "replace": "src/.htaccess",
          "with": "src/.htaccess.dev"
        },
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.staging.ts"
        }
      ]
    }
  }
}

fileReplacements 适用于我的 .env,但 它不会替换我的 htaccess 文件。为什么?

【问题讨论】:

    标签: angular .htaccess build angular-cli .htpasswd


    【解决方案1】:

    啊,看来fileReplacements 只适用于.ts 文件。


    angular/devkit#885:

    目前,文件替换功能仅适用于 TS 文件。更具体地说 - 它仅适用于属于 webpack 编译器主机的文件。

    这将(显然)在 Angular 6.1 中得到修复。

    See this GitHub thread for more info


    2018 年 8 月 28 日更新

    现在在 Angular 6.1 中支持 (confirmed)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多