linux 路径来自本地计算机的服务器上的System.IO.DirectoryNotFoundException

gg0vcinb  于 2023-04-20  发布在  Linux
关注(0)|答案(2)|浏览(156)

我用c# .net core 3.1创建了一个web API,我使用一个目录来保存生成的发票。我本地机器上的目录路径是C:\CU World\Backend\CU-API\CU-API\Generated Invoices
在我的本地机器上,API工作正常。但在我的linux服务器上,它不工作......我得到这个错误:

我不明白为什么当我发布这个到安装了apache 2的linux服务器上时会出现这个错误。有人能帮助我吗?告诉我如何修复它?

xdnvmnnf

xdnvmnnf1#

我可以通过将此添加到我的Startp.cs来修复它

var fileProviderPath = Environment.GetEnvironmentVariable("FILE_PROVIDER_PATH");
app.UseStaticFiles(new StaticFileOptions
{
     FileProvider = new PhysicalFileProvider(fileProviderPath),
     RequestPath = "/GeneratedInvoices"
});
bttbmeg0

bttbmeg02#

我的解决方案是将<Content>标记添加到.csproj文件中,如下所示

<Project Sdk="Microsoft.NET.Sdk.Web">
    ...
    <ItemGroup>
        ...
        <Content Include="photos\*">
            <CopyToPublishDirectory>always</CopyToPublishDirectory>
        </Content>
    </ItemGroup>
</Project>

相关问题