Если ваша конфигурация сборки хранится в angular.json, вы можете скопировать относящиеся к вам биты в json-файл в папке «src / assets /» с помощью сценария nodeJS:
let fs = require("fs");
let angularJson = require("../angular.json");
let buildConfig = {
baseHref: angularJson.projects.<projectname>.architect.build.options.baseHref,
deployUrl: angularJson.projects.<projectname>.architect.build.options.deployUrl,
};
fs.writeFile(
"./src/assets/buildConfig.json",
JSON.stringify(buildConfig),
{flag: ""},
err => {
if (err) {
console.log(err);
}
}
);
// example output=> '{"baseHref": "/app", "deployUrl": "https://example.com"}'
В этом случае этот сценарий хранится в / scripts, вам может потребоваться обновить относительные пути, если вы храните его в другой папке. Также не забудьте указать правильное имя проекта. Вы можете включить этот сценарий перед обычным этапом сборки, обновив сценарий сборки в вашем package.json следующим образом:
"build": "node ./scripts/extractBuildConfig.js && ng build"
Хотя, если вы хотите получить только фактическое местоположение, в котором фактически развернуто веб-приложение, возможно, гораздо проще получить значение document.location
(или одно из его свойств), document.baseURI
, document.domain
и document.getElementsByTagName("base")[0].attributes["href"]
.
Все это говорит о том, что если вы правильно настроили базовый href в своем проекте Angular, все относительные пути в ваших файлах должны автоматически указывать на правильные местоположения, поэтому я не уверен, для чего вам это вообще понадобится.