Umbraco 14.3.1发布后缺失media文件夹引发目录未找到异常求助
Umbraco 14.3.1部署后缺失media文件夹导致DirectoryNotFoundException的解决办法
异常信息
Unhandled exception. System.IO.DirectoryNotFoundException: d:\web\localuser\site.dk\public_html\wwwroot\media\ at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters) at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root) at Umbraco.Cms.Core.IO.PhysicalFileSystem.Create()
原因分析
- 发布配置排除:默认情况下,media文件夹属于用户上传的动态内容,不在项目默认发布清单中,Visual Studio或dotnet publish会自动跳过该文件夹。
- 部署流程遗漏:手动或自动化部署时未主动创建media文件夹。
- 权限不足:服务器应用程序池用户无wwwroot目录的读写权限,导致Umbraco无法自动生成该文件夹。
解决方法
- 手动创建文件夹:直接在服务器路径
d:\web\localuser\site.dk\public_html\wwwroot\下新建media文件夹。 - 调整发布配置:
- Visual Studio:右键项目中的
wwwroot/media文件夹(本地需先创建空文件夹),设置“复制到输出目录”为“如果较新则复制”;或在发布配置的“文件发布选项”中勾选“包含所有文件”。 - dotnet命令/项目文件:在csproj中添加以下配置,强制发布时包含media文件夹:
<ItemGroup> <Content Include="wwwroot\media\**" CopyToPublishDirectory="PreserveNewest" /> </ItemGroup>
- Visual Studio:右键项目中的
- 修复权限:确保运行Umbraco的应用程序池用户对
wwwroot目录拥有读写权限,保障后续文件上传功能正常。
内容的提问来源于stack exchange,提问作者Carsten Løvbo Andersen
相关产品推荐
相关产品推荐

