У нас есть приложение 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"))
Но когда я пытаюсь использовать аналогичное решение для вышеупомянутых ошибок, он тоже не работает.
Любая помощь/предложения будут высоко оценены
По умолчанию 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