Приложение ASP.net mvc, размещенное на сервере, не может загрузить ресурс карты цезия

1

У нас есть приложение MVC, в котором мы использовали карты Cesium через Интернет, и все работает нормально, но теперь мы используем карты локально. Кажется, что локальные карты работают с deve environment (Visual Studio), но при загрузке приложения не загружаются определенные ресурсы. Мы получаем следующие ошибки в консоли браузера:

localhost/MyApp/Scripts/Cesium/Assets/approximateTerrainHeights.json Не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено)

localhost/MyApp/Scripts/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json Не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено)

Вот фрагмент кода

    var localMap = Cesium.createTileMapServiceImageryProvider({
        url: Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII')
    });

    var esri = new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
});

// Creating Cesium Viewer Object
var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProvider: localMap,
    resolutionScale: 0.5,
    baseLayerPicker: false,
    timeline: false,
    navigationHelpButton: false,
    animation: false,
    infoBox: false,
    sceneMode: Cesium.SceneMode.SCENE3D,
    sceneModePicker: false,
    selectionIndicator: false,
    homeButton: false,
    geocoder: false
    /*contextOptions: {
        webgl: {
            failIfMajorPerformanceCaveat: false
        }
    }*/
});

Я прошел через различные сообщения, и я знаю, как работает маршрутизация в MVC, в других случаях, когда я вызывал действия контроллеров, я использовал Url.Action(), что-то вроде:

@Html.Hidden("URL_GetTileJson", Url.Action("GetTileJson", "JsonController"))

Но когда я пытаюсь использовать аналогичное решение для вышеупомянутых ошибок, он тоже не работает.

Любая помощь/предложения будут высоко оценены

Теги:
asp.net-mvc
cesium

1 ответ

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

По умолчанию IIS не будет обслуживать расширения файлов, которые он не распознает. В вашем случае вам нужно добавить сопоставление для файлов.json. Добавьте следующую конфигурацию в файл приложения web.config (слияние в существующую конфигурацию)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".json" />
            <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
    </system.webServer>
</configuration>

В репозитории Cesium у нас есть образец web.config, который содержит больший список полезных расширений файлов и типов mime:

https://github.com/AnalyticalGraphicsInc/cesium/blob/master/web.config

Ещё вопросы

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