ASP.net 服务器上托管的 mvc 应用程序无法加载铯地图资源

ASP.net mvc application hosted on server fails to load cesium map resource

我们有一个 MVC 应用程序,我们一直在其中通过互联网使用 Cesium 地图并且一切正常,但现在我们在本地使用地图。本地地图似乎适用于开发环境 (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"))

但是当我针对上述错误尝试类似的解决方案时,它也不起作用。

任何 help/suggestions 将不胜感激

默认情况下,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