alu*_*lun 3 c# .net-core asp.net-core
因此,我从多个不同位置提供静态文件,如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m1",
FileProvider = new PhysicalFileProvider(@"C:\temp\m1")
});
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m2",
FileProvider = new PhysicalFileProvider(@"C:\temp\m2")
});
}
Run Code Online (Sandbox Code Playgroud)
每个都有一个index.html,使用http://localhost:5000/m1/index.html之类的东西来访问它们可以正常工作。
我还希望它们能够像这样访问:http://localhost:5000/m1/
我当然可以手动编写一些代码,但这正是默认文件应该做的事情,所以我希望下面的代码能够工作。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDefaultFiles(new DefaultFilesOptions
{
RequestPath = "/m1"
});
app.UseDefaultFiles(new DefaultFilesOptions
{
RequestPath = "/m2"
});
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m1",
FileProvider = new PhysicalFileProvider(@"C:\temp\m1")
});
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m2",
FileProvider = new PhysicalFileProvider(@"C:\temp\m2")
});
}
Run Code Online (Sandbox Code Playgroud)
然而,它确实不起作用。有人有解决这个问题的办法吗?
找到了阅读默认文件中间件的源代码。您需要为两个中间件提供相同的文件提供程序,这样就可以工作:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDefaultFiles(new DefaultFilesOptions
{
RequestPath = "/m1",
FileProvider = new PhysicalFileProvider(@"C:\temp\m1")
});
app.UseDefaultFiles(new DefaultFilesOptions
{
RequestPath = "/m2",
FileProvider = new PhysicalFileProvider(@"C:\temp\m2")
});
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m1",
FileProvider = new PhysicalFileProvider(@"C:\temp\m1")
});
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/m2",
FileProvider = new PhysicalFileProvider(@"C:\temp\m2")
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |