我创建了一个带有一些视图和控制器的MVC 5网页,添加了一些图像(gif和svg),并验证它主要在本地工作。图像显示出来,一切都按预期运行。
当我部署到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网站提供服务时。
我认为这不相关,但我告诉我的网站路由现有文件:
routes.RouteExistingFiles = true;
我的所有图像--gif和svg - 都位于Solution 'mySolutionName' -> myMvcProjectName -> img
。因此,我无法看到任何指示我的网站以不同方式处理这些文件的内容。
答案 0 :(得分:5)
原来这是staticContent
MIME类型的问题,如this answered question中所述。
要解决此问题,我找到了<system.webServer>
的{{1}}部分:
Web.config
使用适当的MIME类型为SVG添加 <system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
映射:
<staticContent>