ASP.NET MVC 5 在 Azure 上:对于 SVG 文件,“您正在寻找的资源已被移除…”

12 浏览
0 Comments

ASP.NET MVC 5 在 Azure 上:对于 SVG 文件,“您正在寻找的资源已被移除…”

我创建了一个带有一些视图和控制器的MVC 5网页,添加了一些图片(gif和svg),并验证了基本上在本地工作正常。图片显示出来,一切都按预期运行。\n当我将网页部署到Azure时,gif图片加载正常,但svg图片出现错误The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. 当我使用Azure凭据登录我的网站的FTP时,gif和svg文件都在那里。我可以正常访问我的/img/loading.gif文件;然而,/img/logo.svg -- 虽然它在目录中存在,并且在本地运行时显示出来 -- 但在我的Azure网站上服务时找不到。\n我不认为这是相关的,但我正在告诉我的网站路由现有文件:routes.RouteExistingFiles = true;\n而且我的所有图片 -- gif和svg -- 都位于Solution \'mySolutionName\' -> myMvcProjectName -> img。所以我看不到任何指示我的网站以不同方式处理这些文件的东西。

0
0 Comments

在将ASP.NET MVC 5应用程序部署到Azure时,可能会遇到一个问题,即在访问SVG文件时显示"您要查找的资源已被删除..."的错误信息。

经过一番研究,发现这是由于staticContent MIME类型的问题,可以在这个回答中找到解决方法。

要解决这个问题,需要在Web.config文件中的<system.webServer>部分进行一些配置。首先,找到以下代码块:

<system.webServer>
  <modules>
    <remove name="FormsAuthentication" />
  </modules>
</system.webServer>

然后,在此代码块中添加一个<staticContent>节点,以添加SVG文件的适当MIME类型配置。具体代码如下:

<system.webServer>
  <modules>
    <remove name="FormsAuthentication" />
  </modules>
  <staticContent>
    <mimeMap fileExtension="svg" mimeType="image/svg+xml" />
  </staticContent>
</system.webServer>

通过添加以上代码,将为SVG文件添加了正确的MIME类型配置,从而解决了在Azure上访问SVG文件时出现"您要查找的资源已被删除..."错误的问题。

0