Swagger ui无法在服务器中加载json规范文件

时间:2018-08-10 03:35:39

标签: asp.net-web-api2 swagger swagger-ui

我有不可靠的ui和一个开放的api规范3.0 json文件。当我从本地iis运行index.html文件时,它会在文档中显示swagger ui。但是,当我从服务器运行它时,它抛出 无法读取文件 错误。 index.html具有json文件的相对路径。

window.onload = function() {

  // Build a system
    const ui = SwaggerUIBundle({
        urls: [
            {
                url: "../OASDoc/v1_apidoc.json",
                name:"Version 1.0.0"
            }
              ],
    dom_id: '#swagger-ui',
    deepLinking: true,
    presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
    ],
    plugins: [
      SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout"
  })

  window.ui = ui
}

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试从URL(xxxx.xxxx.com/appFolder/OASDoc/v1_apidoc.json)访问api JSON doc文件,该文件不可访问,但所有其他文件(如文本文件)均可访问。我认为这是由于文件扩展名。 为了克服此限制,我将以下mime类型映射添加到web.config文件中,并且可以正常工作。

<system.webServer> 
  <staticContent> 
    <mimeMap fileExtension=".json" mimeType="application/json"/> 
  </staticContent> 
</system.webServer>