【发布时间】: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