我没有包含UseStaticFile中间件,但是当我请求静态文件时,我可以得到响应。有人能解释一下为什么会这样吗?wwwroot
中有一个CSS文件夹,CSS文件夹中有site.css
文件
我提出以下请求https://localhost:7284/css/site.css
它不应该返回响应,因为我没有包含UseStaticFile(),但它会给我请求的CSS文件
下面是代码:
using PathenyShop.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Components.Server;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped<IPieRepository,PieRepository>();
builder.Services.AddScoped<ICategoryRepository,CategoryRepository>();
builder.Services.AddScoped<IShopingCart, ShopingCart>(sp => ShopingCart.GetCart(sp));
builder.Services.AddSession();
builder.Services.AddHttpContextAccessor();
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<BethanyPieShopDbContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("BethanyPieShopDbContextConnection"));
});
var app = builder.Build();
app.UseSession();
if (app.Environment.IsDevelopment())
{
var s=app.UseDeveloperExceptionPage();
}
app.MapDefaultControllerRoute(); // "{controller=Home}/{action=Index}/{Id?}"
DbInitializer.Seed(app);
app.Run();
预期结果:
- 没有响应请求,因为没有静态文件中间件!
我尝试过的步骤:
- 请在这里提到你试图解决这个问题的事情。
- 试试2
1条答案
按热度按时间jxct1oxe1#
WebApplication.CreateBuilder
将在内部调用ConfigureWebHostDefaults
,然后将配置WebRootFileProvider以包含开发期间入口程序集引用的项目中的静态Web资源
根据此处的文档:
此外,这似乎只在“开发”模式下运行时设置。你能仔细检查一下在“生产”模式下运行时是否仍然可以访问这些文件吗?(您可以在项目中的“属性”下轻松更改launchSettings.json文件中的模式)。
如果你想对包含的内容进行更多的控制,你可以手动配置,或者你也可以查看.NET 8中新的
CreateBuilderSlim
方法。