2016-04-28 2 views
3

У меня есть интерфейс Javascript, который Ajax вызывает на моем сервере. Для этого ему нужен «backend_URL», который я жестко закодировал в вызове Ajax get(), например «http://myservice/backend».Где поставить параметры конфигурации javascript для frontend

Теперь, если я хочу развернуть свое приложение на разных машинах, некоторые из которых будут использовать этот url с HTTPS: «https://myservice/backend», а некоторые нет (потому что у них нет надлежащего сертификата и не выставляются ценные данные).

Где я могу поместить переменную конфигурации «USE_HTTPS = 1», чтобы кто-то, использующее приложение, мог использовать или не использовать SSL? Конечно, вопрос распространяется на другие переменные конфигурации.

Я думал о добавлении файла «.config» в корневой каталог проекта, но тогда я не знаю, как его импортировать в свой код. Или я должен экспортировать переменные среды? Или функция node.js?

+0

Это код ** на стороне клиента **, который должен знать это, не так ли? –

+0

Создайте файл config.js и напишите конфигурацию вашей клиентской стороны. в этом. Импортируйте его в заголовок перед файлом, который читает config. Информация. –

+0

@ T.J.Crowder Да, клиентская сторона. На стороне сервера Apache настроен на получение HTTP или HTTPS, но клиент не знает об этом, поэтому ему нужен намек. – JulienD

ответ

2

Я закончил тем, что писал conf.js файл с содержанием

window.CONFIG = { 
    SOME_CONSTANT = 22, 
} 

и включил его в новый <script> в моем index.html перед другими сценариями. window не является обязательным, но показывает, где он исходит, когда я назову это window.CONFIG в любом месте на остальной части javascript.

1
CONFIG = (function(){ 
var conf_info = {}; 
conf_info["url"] = 'http://codepen.io/pen/'; 
return{  
    getValue : function(param){ 
    return conf_info[param]; 
    } 
} 
})(); 

//some where in different file 
document.getElementById("result").innerHTML = CONFIG.getValue('url'); 
+0

Это помогает, но он все еще далек от читаемого конфигурационного файла (например, grunt/gulp config или json, например, без семантики кода). Если я попрошу людей отредактировать код, им это не понравится. Должен ли я прочитать json из этого кода? – JulienD

Смежные вопросы