我试图使用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.