css 我想了解为什么应用程序给我静态文件响应,而没有在中间件管道中包含UseStaticFile()中间件?

wbrvyc0a  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(104)

我没有包含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
jxct1oxe

jxct1oxe1#

WebApplication.CreateBuilder将在内部调用ConfigureWebHostDefaults,然后将
配置WebRootFileProvider以包含开发期间入口程序集引用的项目中的静态Web资源
根据此处的文档:

此外,这似乎只在“开发”模式下运行时设置。你能仔细检查一下在“生产”模式下运行时是否仍然可以访问这些文件吗?(您可以在项目中的“属性”下轻松更改launchSettings.json文件中的模式)。
如果你想对包含的内容进行更多的控制,你可以手动配置,或者你也可以查看.NET 8中新的CreateBuilderSlim方法。

相关问题