asp.net-mvc – 在Ubuntu 16.04中运行ASPNET Core应用程序时如何访问另一个文件夹中的文件?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在Ubuntu 16.04中运行ASPNET Core应用程序时如何访问另一个文件夹中的文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用dotnet core 1.1在Ubuntu 16.04中运行ASP5 / MVC6 ASPNET核心应用程序.我的应用程序驻留在用户主目录之外的一个目录中,主目录下的另一个目录包含带有图像(.jpg)文件文件夹结构.

我收到以下错误

fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
An unhandled exception has occurred: Access to the path '/home/myuser/myimages/somefolder' is denied.
System.UnauthorizedAccessException: Access to the path '/home/myuser/myimages/somefolder' is denied. ---> System.IO.IOException: Permission denied

这是文件夹结构的一个例子……

/home/myuser/mywebapp/mywebapp.dll

/home/myuser/myimages/somefolder/someimage.jpg

我已经将以下目录修改为777 ..

> / home
> / home / myuser
> / home / myuser / myimages
> / home / myuser / myimages / somefolder

…我还有chmodded文件someimage.jpg到777.

我从/ home / myuser / mywebapp运行aspnet核心应用程序.我试过sudo并没有好处.

我可以在ASPNET核心Web应用程序中引用工作目录之外的目录中的文件吗?

解决方法

默认情况下,静态文件应位于wwwroot文件夹中,该文件夹位于您工作的文件夹中.但是如果你想让它们保持在外面,你可以配置静态文件中间件:
public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory)
{
    app.UseStaticFiles();

    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(),@"MyStaticFiles")),RequestPath = new PathString("/StaticFiles")
    });
}

请参阅教程here.

猜你在找的.NET Core相关文章