“wwwroot”文件夹中的某些文件未在 ASP.NET Core Web 部署中发布

Posted

技术标签:

【中文标题】“wwwroot”文件夹中的某些文件未在 ASP.NET Core Web 部署中发布【英文标题】:Some files in "wwwroot" folder are not published in ASP.NET Core web deploy 【发布时间】:2018-12-22 19:43:32 【问题描述】:

我在 Visual Studio 2017 中使用 ASP.NET Core 2.0。

当我在IIS Express 中进行调试时,我的网站运行良好。但是在将站点部署到 IIS 服务器时,并没有部署 wwwroot 中的所有文件夹和文件。我查看了 .csproj 文件,但我不知道如何确保它部署了所有文件和文件夹。

【问题讨论】:

是 .csproj 中您需要的文件和文件夹吗? 如何部署? 【参考方案1】:

我解决了这个问题。解决方法是编辑 .csproj 文件。

删除所有与wwwroot相关的ItemGroup标签,然后添加这个:

<ItemGroup>
    <None Include="wwwroot\*" />
</ItemGroup>

星号将包括所有子文件夹和文件。

【讨论】:

除了空文件外,wwwroot文件夹中的所有文件都会被包含进来 如果您删除所有其他 itemgroup 标签,其他原本应该包含的项目不会最终不在构建中吗? 为什么元素命名为“None”而不是“Content”?【参考方案2】:
<PropertyGroup>

<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
<ItemGroup>
    <Content Include="wwwroot\**\*">
      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
    </Content>
</ItemGroup>

【讨论】:

【参考方案3】:

它对我有用

<ItemGroup>
    <None Include="wwwroot\**">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>

【讨论】:

以上是关于“wwwroot”文件夹中的某些文件未在 ASP.NET Core Web 部署中发布的主要内容,如果未能解决你的问题,请参考以下文章

从 ASP.Net Core 中的 wwwroot/images 获取图像

ASP.NET Core 中 wwwroot 的文件夹类型并在 MVC 5 中使用

Asp.Net Core 中的静态文件

Asp.Net Core 中的静态文件

有没有办法为 ASP.NET Core 中的内容设置通用根路径?

从 ASP.NET 5 控制器 VS 2015 获取 wwwroot 文件夹路径