dojoConfig не может найти ресурсы скрипта при работе на IIS

1

У меня есть следующая упрощенная структура проекта

|
|-app.js
|-components
|  |
|  |-someModule.js

мой dojoConfig выглядит так:

dojoConfig = {
     async: true,
     tlmSiblingOfDojo: false,
     packages: [{
        name: "components",
        location: '/components'
     }],
     cacheBust: true
};

Я загружаю эти файлы следующим образом:

define(["esri/geometry/webMercatorUtils",
        "esri/map",
        "components/CoordinateTransutils",
        "components/SettingsManager"
    ],
    function(WebMercatorUtils, Map, CoordinateTransUtils, SettingsManager) {

    }
);

локально я разрабатываю с использованием узлов http-server, который отлично работает. Развернутый в IIS, однако, я получаю ошибки, которые выглядят так:

Failed to load resource: the server responded with a status of 404 (Not Found)
init.js:41 Error: scriptError
    at d (init.js:15)
    at HTMLScriptElement.<anonymous> (init.js:40)
(anonymous) @ init.js:41
init.js:41 src: dojoLoader
init.js:41 info: Array(2)0: "/components/CoordinateTransUtils.js?1496989376094"1: Eventlength: 2__proto__: Array(0)

Проблема в том, почему она работает на локальном dev-сервере, но не на IIS?

Теги:
dojo
esri

1 ответ

1
Лучший ответ

Я использую что-то вроде этого:

var dojoConfig = (function () {
  var base = location.href.split("/");
  base.pop();
  base = base.join("/");
  return {
    async: true,
    isDebug: true,
    packages: [{
      name: "components",
      location: base + "/components"
    }]
  };
})();

и он работает без проблем как локально, так и на сервере IIS.

  • 0
    Мне пришлось удалить переднюю косую черту перед компонентами, чтобы она работала на узле и IIS. Теперь его сбой при запуске с помощью двойного щелчка из локальной файловой системы, но это недостаток, с которым я могу жить

Ещё вопросы

Сообщество Overcoder
Наверх
Меню