首页 > 编程语言 >ASP.NET Core6.0-wwwroot文件夹无法访问解决方法

ASP.NET Core6.0-wwwroot文件夹无法访问解决方法

时间:2024-08-30 11:48:48浏览次数:5  
标签:文件 wwwroot ASP Web 静态 无法访问 文件夹 app

默认情况下,ASP.NET Core项目中的wwwroot文件夹被视为Web根文件夹。静态文件可以存储在Web根目录下的任何文件夹中,并可以使用该根目录的相对路径进行访问。在ASP.NET应用程序中,可以从应用程序的根文件夹或其下的任何其他文件夹提供静态文件。这已在ASP.NET Core中更改。现在,只有Web根目录-wwwroot文件夹中的那些文件才能通过http请求提供。其他所有文件均被阻止,默认情况下无法提供。通常,在wwwroot文件夹中应有用于不同类型的静态文件(例如JavaScript,CSS,图像,库脚本等)的单独文件夹,如下所示。

但是,如果想要静态文件能够被正常访问到,我们还必须在Startup.cs中配置中间件以将静态文件添加到管道中。将对Microsoft.AspNetCore.StaticFiles包的依赖项添加到项目中,然后Startup.Configure调用扩展方法UseStaticFiles

 

重命名wwwroot文件夹

我们可以根据自己的选择将wwwroot文件夹重命名为任何其他名称,并在program.cs中准备托管环境时将其设置为Web根。例如,让我们将wwwroot文件夹重命名为Content文件夹。现在,在Program类的Main()方法中调用UseWebRoot()方法将Content文件夹配置为Web根文件夹,如下所示。

 

访问wwwroot文件夹之外的静态文件

假设这有一个项目层次结构,其中要提供的静态文件不在wwwroot的范围内。

对于访问自拍.png的请求,需要配置静态文件中间件,如下所示:

复制代码
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){
    app.UseStaticFiles();
    app.UseStaticFiles(new StaticFileOptions()    {   
       FileProvider = new PhysicalFileProvider(            
Path.Combine(Directory.GetCurrentDirectory(), @"其他静态文件")),
RequestPath = new PathString("/StaticFiles")
});
}
复制代码

请求http://localhost:xxxx/StaticFiles/自拍.png将访问到自拍.png文件。

启用目录浏览

目录浏览允许Web应用程序用户查看指定目录中的目录和文件列表。出于安全原因,默认情况下禁用目录浏览。要启用目录浏览,请从Startup.Configure中调用扩展方法UseDirectoryBrowser :

 

并通过从Startup.ConfigureServices调用AddDirectoryBrowser扩展方法来 添加所需的服务

 

上面的代码允许使用URL http://localhost:xxxx/images/浏览wwwroot/images文件夹的目录,并带有指向每个文件和文件夹的链接:

 

提供默认文档

设置默认主页将为网站访问者提供一个访问网站的起点。为了使Web应用程序无需用户完全限定URI即可提供默认页面,请在Startup.Configure中调用扩展方法UseDefaultFiles。

public void Configure(IApplicationBuilder app){    
app.UseDefaultFiles(); app.UseStaticFiles(); }

使用UseDefaultFiles,对文件夹的请求将搜索:

  • default.htm
  • default.html
  • index.htm
  • index.html

从列表中找到的第一个文件将作为默认起始页面。

标签:文件,wwwroot,ASP,Web,静态,无法访问,文件夹,app
From: https://www.cnblogs.com/shijiehaiyang/p/18388451

相关文章

  • PageOffice6国产Linux系统最简集成代码(Asp.Net)
    本文描述了PageOffice产品在普通的Asp.Net项目中如何集成调用。PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、longarch芯片架构。新建Asp.Net项目:PageOffice6-Net-Simple在您的web项目的“依赖项-包-管理NuGet......
  • 【C#】【WinForm】asp.net Files 的值 "***" 的解决办法(乱码)
    asp.net项目,在生成解决方法过程中,出现“Files的值"***"”解决方案生成失败。解决:例:项目名称为:ABC在项目目录下的“ABC\obj\Debug\”的文件夹中找到与项目同名的“.csproj.FileListAbsolute.txt”文件,即“ABC.csproj.FileListAbsolute.txt”,打开后会看到部分文字乱码,删除掉......
  • Serilog文档翻译系列(二) - 设置AspNetCore应用程序
     Serilog日志记录适用于ASP.NETCore。此包将ASP.NETCore的日志消息通过Serilog进行路由,使你可以将有关ASP.NET内部操作的信息写入与应用程序事件相同的Serilog接收器中。安装并配置了Serilog.AspNetCore后,你可以直接通过Serilog或ASP.NET注入的任何ILogger......
  • ASP.NET WebApi + Autofac 实现依赖注入
    方法11.1、项目情况框架:.NETFramework4.5Autofac3.5.0Autofac.WebApi24.3.0 1.2、定义接口与对应实现//接口1publicinterfaceIBaseUserService{List<BaseUser>GetBaseUserList();}//接口2publicinterfaceIBaseCloseLoopService{List<BaseCloseLoop>GetBase......
  • ASP.NET Core 入门教程三 结合 EFCore 和 SQLite
    ASP.NETCore是一个开源的Web框架,它允许开发者轻松地构建现代、高性能的Web应用程序。EntityFrameworkCore(EFCore)是一个轻量级、可扩展的ORM(对象关系映射)框架,它支持多种数据库。SQLite是一个轻量级的嵌入式数据库,适用于小型应用程序。在本篇文章中,我们将学习如何......
  • @aspectJ机制剖析
    @aspectJ机制剖析@aspectj通过修改字节码文件来实现目标方法的增强。org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitializationorg.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#postProcessAfterInitializationA......
  • 【音视频通话】使用asp.net core 8+vue3 实现高效音视频通话
    引言在三年前,写智能小车的时候,当时小车上有一个摄像头需要采集,实现推拉流的操作,技术选型当时第一版用的是nginx的rtmp的推拉流,服务器的配置环境是centos,2H4G3M的一个配置,nginx的rtmp的延迟是20秒,超慢,后来研究了SRS以及ZLMediaKit这两个开源的推拉流服务器,没记错的话,两个......
  • Asp.Net Core中Typed HttpClient高级用法
    另一个常见的需求是根据不同的服务接口创建不同的HttpClient实例。为了实现这一点,ASP.NETCore提供了TypedHttpClient的支持。下面是使用TypedHttpClient的示例代码:publicinterfaceIExampleService{Task<string>GetData();}publicclassExampleService:IExampl......
  • 界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合
    TelerikUIforASP.NETCore是用于跨平台响应式Web和云开发的最完整的UI工具集,拥有超过60个由KendoUI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格,提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。本文将介绍界面组件TelerikUIforASP.NETCore在今年......
  • 驾驭ASP.NET MVC:C# Web开发的精粹
    标题:驾驭ASP.NETMVC:C#Web开发的精粹摘要ASP.NETMVC是微软提供的一个用于构建动态网站的服务器端框架,它遵循模型-视图-控制器(MVC)设计模式,以实现代码的高内聚低耦合。本文将深入探讨如何在C#中使用ASP.NETMVC框架进行Web应用程序开发,包括项目结构、路由、控制器、视图和......