我正在使用kpm pack生成我的部署,我通过ftp部署到Azure。我需要能够提供静态json文件,所以我需要将以下内容添加到我的web.config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="text/html" />
</staticContent>
</system.webServer>
问题是kpm pack生成了web.config,因此实现此目的的唯一方法是在生成后将config部分添加到web.config。由于我通过ci进行自动部署,因此需要付出一些努力。有没有更好的方法来实现这一目标?
答案 0 :(得分:2)
您应该将配置添加到web.config的源代码而不是目标。
如果您正在打包的项目的根目录中没有web.config,请创建一个。然后将静态内容配置添加到[project_root] /web.config。
“kpm pack”将保留[project_root] /web.config中的所有配置,添加IIS所需的一些信息,然后将其写入wwwroot / web.config。
重要更新:
“kpm pack”中引入了一项更改:https://github.com/aspnet/KRuntime/pull/972
请将您的web.config从项目根目录移动到wwwroot的源。
可以使用project.json(https://github.com/aspnet/Home/wiki/Project.json-file#webroot)中的“webroot”指定wwwroot文件夹的来源。 您也可以使用“kpm pack”的“--wwwroot”选项指定它。
答案 1 :(得分:0)
在ASP.NET Core中,您可以通过在代码中配置静态文件中间件选项(StaticFileOptions
)来完全避免web.config
,从而提供自定义FileExtensionContentTypeProvider
作为其{{1} }}:
ContentTypeProvider