Итак, я создаю веб-сайт с помощью jhipster (Angular и Spring Boot) и работаю над решением, позволяющим защитить конфиденциальные конфигурации от контроля источников (например, учетных данных OAuth).
Мое приложение построено с использованием Maven и веб-пакета, и я пытаюсь выяснить, как получить мою конфигурацию во время выполнения. В моем app.main.ts у меня есть следующий код для получения файла конфигурации json и запуска приложения:
(async () => {
const response = await fetch ("../../../config.json")
const config = await response.json();
environment['issuer'] = config.issuer;
environment['redirectUri'] = config.redirectUri;
environment['clientId'] = config.clientId;
platformBrowserDynamic()
.bootstrapModule(HelloworldAppModule, { preserveWhitespaces: true })
// eslint-disable-next-line no-console
.then(() => console.log('Application started'))
.catch(err => console.error(err));
})();
Но я получаю 404 при получении. Я не уверен, откуда этот код запускается - я думал, что это будет индекс. html - и поэтому я не могу найти, куда поместить config. json, чтобы его можно было найти. Вот немного моей файловой структуры:
jhipster
config.json
src
main
webapp
app
index.html
target
classes
static
index.html
Кто-нибудь знает, почему он не может найти конфигурацию. json? Я попытался поместить config. json в родительскую папку jhipster
вместе с полдюжиной других мест, и я попробовал fetch
с любым количеством ведущих ../
, но я продолжаю получать это 404.
РЕДАКТИРОВАТЬ: Я обнаружил, что если я вручную скопировать мой config.json
файл в jhipster/target/classes/static/
и загрузить его с fetch("config.json")
, то он может быть найден, так почему я не могу загрузить это от jhipster/
с fetch('../../../config.json')
?