Я пытаюсь использовать API Esri ArgGis JavaScript, который загружается Dojo, используя dojo.require. У меня есть существующее модульное приложение AMD/requirejs Typescript, в которое мне нужно интегрировать этот код. В верхней части моего исходного файла TS я импортирую несколько модулей:
import tracer = module('../classes/trace');
import pubsub = module('../classes/pubsub');
import masker = module('../classes/masker');
// etc.
Это работало нормально, но теперь, когда я добавил код ArcGis, вместо разрешения относительного пути в моем приложении, require.js получил baseUrl с сайта Esri и попытался загрузить:
http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/classes/trace.js
// etc.
Результатом является строка из 404 ответов и ошибок скрипта.
Как я могу это исправить?
Я попытался установить baseUrl requirejs в заголовке моего html-файла перед загрузкой первого документа, который загружает модули:
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3"></script>
<script type="text/javascript" src="/content/client/libs/require.js"></script> <!-- data-main="/content/client/hop/hop.app" -->
<script type="text/ecmascript">
require.config({
baseUrl: "/Content/client/hop/"
});
</script>
<script src="~/Content/client/hop/hop.app.js"></script>
Но это терпит неудачу, вызывая исключение, которое требует, чтобы не было конфигурации метода.
(Примечание. Если я изменю порядок в заголовке html-документа так, чтобы API-интерфейс arcgis был последним в последовательности загрузки, то я получу противоположную проблему: все мои локальные файлы работают нормально, но dojo и API-интерфейс сопоставления терпят неудачу, потому что они ищут пути относительно моего сайта, когда они должны искать на сервере argis).