Jak mogę naprawić ten konflikt ścieżki AMD?
Próbuję użyćEsri ArgGis JavaScript API, który jest ładowany przezDojo, za pomocądojo.require
. Mam istniejącą modułowąAMD / requirejs Aplikacja maszynopisu, którą muszę zintegrować z tym kodem. Na początku mojego początkowego pliku TS importuję kilka modułów:
import tracer = module('../classes/trace');
import pubsub = module('../classes/pubsub');
import masker = module('../classes/masker');
// etc.
Działało to dobrze, ale teraz, gdy dodałem kod ArcGis, zamiast rozwiązać ścieżkę względną w mojej aplikacji, require.js wybrał baseUrl ze strony Esri i próbuje załadować:
http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/classes/trace.js
// etc.
Rezultatem jest ciąg 404 odpowiedzi i błędów skryptu.
Jak mogę to naprawić?
Spróbowałem ustawić requireUs baseUrl w nagłówku mojego pliku HTML przed załadowaniem pierwszego dokumentu, który ładuje moduły:
<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>
Ale to się nie udaje, rzucając wyjątek, który nie wymaga konfiguracji metody.
(Uwaga: Jeśli odwrócę kolejność w nagłówku dokumentu html tak, że arcgis api pojawi się jako ostatni w sekwencji ładowania, otrzymam przeciwny problem - wszystkie moje lokalne pliki działają poprawnie, ale dojo, a mapowanie api nie działa, ponieważ szukają ścieżki względem mojej strony, gdy powinny przeszukiwać serwer argis).