我正在尝试使用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 ..
...我还将chmodded文件someimage.jpg改为777。
我从/ home / myuser / mywebapp运行aspnet核心应用程序。我试过sudo并没有好处。
我可以引用ASPNET Core Web app中位于工作目录之外的目录中的文件吗?
答案 0 :(得分:2)
默认情况下,静态文件应位于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。
答案 1 :(得分:0)
您可以使用'ln'链接到工作目录中的'/ home / myuser / myimages'
然后您可以引用工作目录中的文件