我的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文件。为什么?
答案 0 :(得分:0)
嗯,看来fileReplacements
仅适用于.ts
个文件。
当前,文件替换功能仅适用于TS文件。更具体地说-它仅适用于webpack编译器主机中的文件。
(显然)这将在Angular 6.1中修复。
See this GitHub thread for more info
现在(confirmed)在Angular 6.1中受支持