【发布时间】:2019-02-03 23:46:56
【问题描述】:
在我的 ASP.NET Core 2.2 MVC 服务器中,我想添加一个文件夹来存储静态文件。我找到了以下代码来执行此操作:
app.UseStaticFiles(new StaticFileOptions {
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "StaticFiles")),
RequestPath = "/StaticFiles"
});
在我的电脑中,该项目位于"C:\Users\MyUsername\source\repos\WebApplication1\WebApplication1",在同一目录下有一个名为“StaticFiles”的文件夹和一个Startup.cs文件,上面的代码就是写在这里的。
但是当我执行代码时出现以下错误:
'System.IO.DirectoryNotFoundException' in Microsoft.Extensions.FileProviders.Physical.dll C:\Program Files\IIS Express\StaticFiles\
Directory.GetCurrentDirectory() 返回 "C:\\Program Files\\IIS Express" 而不是 "C:\Users\MyUsername\source\repos\WebApplication1\WebApplication1"。 我怎样才能得到正确的方向?
【问题讨论】:
-
嗨 :) 如果您希望它成为应用程序所在的路由,请在调试时从 IIS Express 更改为“YourProjectName”
-
我认为您应该在项目中包含 StaticFiles 文件夹中的所有文件,并在属性中将 BuildAction 设置为
Content。这样它们就会被包含在安装文件中。 -
@NikolaMarkovinović
StaticFiles在项目文件夹中。BuildAction是什么意思?我的 Visual Studio 是西班牙语的,我没有找到任何类似的按钮,那个按钮应该在哪里? -
右键单击文件,然后单击
Properties。 -
Directory.GetCurrentDirectory()可以随着程序运行而改变 - 它应该不用于查找相对于应用程序位置的文件。
标签: c# asp.net-core