asp.net-mvc - IIS 上的 ASP.NET MVC Angular - MIME 类型配置
问题描述
我正在尝试在 IIS 上部署我的 mvc angular 应用程序,到目前为止一切正常。但是,现在我需要提供一些带有自定义扩展名的静态文件(例如.dma)。为此,我为我的站点添加了适当的 MIME 类型配置,但它似乎不起作用。
二进制文件的一般结构如下:
.
+-- AngularApp
| +-- dist
| +-- assets
| +-- specialfile.dma
| +-- ...
+-- index.html
+-- wwwroot
| +-- icon.svg
+-- appsettings.json
+-- web.config
+-- *.dll
我的 web.config 看起来像这样。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\mywebapp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".dma" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
当我尝试从资产文件夹中获取扩展名为.dma的文件时,找不到它。我已经检查过是否可以从同一个文件夹中检索任何其他文件(例如 png 图像),因此路由很好。
我还部署了独立于 MVC 应用程序的 Angular 应用程序,结果证明我可以获取该文件。
我在这里想念什么?
我还需要添加其他配置吗?
解决方案
经过一段时间的故障排除,我终于弄清楚发生了什么。
事实证明,代码中有一个配置改变了角度文件的根路径。
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "AngularApp/dist";
});
而且似乎 IIS 只是忽略了该文件夹的任何常规配置。
我必须为资产文件夹创建一个虚拟目录,并将 MIME 类型配置添加到新的位置标记中。
所以,我的 web.config 现在看起来像这样。
<configuration>
...
<location path="assets">
<system.webServer>
<staticContent>
<mimeMap fileExtension=".dma" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</location>
</configuration>
推荐阅读
- python - 变量作为后缀?
- php - 名称验证表单不允许名称之间有空格
- sql - 每个行组合的 SQL 总计
- react-native - 使手势状态逐步返回值(类似网格的行为)
- azure - 创建新分支时如何触发管道
- csvhelper - CSVHelper 涉及 CurrentIndex 和内部异常“路径不是有效形式”的错误。
- apollo-client - 使用缓存优先策略进行过度获取
- postgresql - 从 MySQl 切换到 Postgresql 后,Sqlalchemy 找不到架构
- list - SwiftUI:在 ScrollView 或 List 中时,PageTabViewStyle() 新损坏?
- node.js - 如何让 Discord 机器人将消息发送到 Discord Node js 的特定频道机器人