首页 > 其他分享 >【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法

【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法

时间:2024-05-29 20:45:09浏览次数:19  
标签:文件 Service 静态 App 路径 404 NET

问题描述

使用.NET 8开发应用,部署到Azure App Service后,需要直接访问一些静态图片/视频文件,但是直接通过相对路径获取文件时,遇见404错误........

 

问题解答

在网上搜索“.NET应用读取静态文件”关键字,找到了问题原因。在IIS部署应用时代(.NET Core之前),是通过IIS服务来匹配文件路径,所以可以通过进入根目录后的文件夹路径找到静态文件(如css,font,js, 图片和视频等文件)。

 

但是,在.NET Core时代,需要使用 app.UseStaticFiles() 中间件实现。并且文件路径为。 默认目录为 {content root}/wwwroot。如果文件路径不在wwwroot目录中。可以通过UseStaticFiles方法指定并修改。例如:

app.UseStaticFiles(new StaticFileOptions()
{
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "Images")),
    RequestPath = new PathString("/Images")
});

StaticFileOptions的属性介绍:静态文件的实际路径为当前根目录下的Images文件夹,当通过URL请求图片时,通过根路径‘/’后的images来映射到真实文件夹Images中。

        //
        // Summary:
        //     The relative request path that maps to static resources. This defaults to the site root '/'.
        public PathString RequestPath { get; set; }
        //
        // Summary:
        //     The file system used to locate resources
        //
        // Remarks:
        //     Files are served from the path specified in Microsoft.AspNetCore.Hosting.IWebHostEnvironment.WebRootPath
        //     or Microsoft.AspNetCore.Hosting.IWebHostEnvironment.WebRootFileProvider which
        //     defaults to the 'wwwroot' subfolder.
        public IFileProvider? FileProvider { get; set; }

当把 UseStaticFiles 添加后,部署到App Service后,直接访问静态图片路径,成功返回图片。

 

参考资料

ASP.NET Core 中的静态文件 : https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/static-files?view=aspnetcore-8.0

 

标签:文件,Service,静态,App,路径,404,NET
From: https://www.cnblogs.com/lulight/p/18221009

相关文章

  • APP更新方案
    注意!!!后端返回数据要求字段如下 url:'http://127.0.0.1:8088/edition_manage/get_edition',//示例接口传参data:{edition_type:plus.runtime.appid,version_type:uni.getSystemInfoSync().platform,//android或者iosedition_numbe......
  • Android 四大组件 service
    前言在Android系统中,Service是一个用来执行长时间运行的操作而不提供用户界面的应用组件。它可以在后台执行任务,即使用户切换到其他应用也不会被中断。Service在Android中主要用于在后台执行长时间运行的任务,例如播放音乐、执行文件下载、处理网络请求等。尽管Service运行......
  • 升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0 uniapp、vue、android、web 框
    升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0uniapp、vue、android、web框架:Vue3+SpringBoot3),界面功能(三) 主要功能要点:     权限管理(组织机构、用户管理、角色管理、岗位管理)     系统设置(菜单管理、参数管理、数据字典、定时任务、文件管......
  • 在kubernetes里使用AppArmor限制容器对资源的访问
    目录一.系统环境二.前言三.AppArmor简介四.AppArmor和SELinux的区别五.使用AppArmor限制nginx程序访问目录5.1安装nginx5.2修改nginx的默认主页5.3安装AppArmor实用工具5.4AppArmor规则解释5.5配置AppArmor规则限制nginx程序访问目录六.在kubernetes里使用AppArmor限制容器对......
  • uni-app解决表格uni-table样式问题
    一、如何让表格文字只显示一行,超出部分用省略号表示步骤:给table设置table-layout:fixed; 列宽由表格宽度和列宽度设定。(默认是由单元格内容设定)让表格元素继承父元素宽度固定table-layout:inherit;overflow:hidden;超过部分隐藏,text-overflow:ellipsis;超出部分用省略......
  • (二刷)代码随想录第17天|● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之
    110.平衡二叉树math.abs指的是绝对值;这棵树的左右子树的高度差小于1的时候,同时该树的左右子树都是平衡二叉树的时候,这棵树才是平衡二叉树;classSolution{publicbooleanisBalanced(TreeNoderoot){returngetHeight(root)!=-1;}privateint......
  • .net6 类库 读取appsettings.json
    类库项目引入 Microsoft.Extensions.Configuration和 Microsoft.Extensions.Configuration.Json程序包以Sqlsugar读取配置文件为例:publicclassSqlsugarBase{publicstaticIConfigurationConfiguration{get;set;}staticSqlsugarBase()......
  • uniapp拍照
    plus.camera.getCamera().captureImage(function(e){plus.io.resolveLocalFileSystemURL(e,function(entry){entry.file(function(file){consturl1=entry.toLocalURL();uni.uploadFile(......
  • 预约上门服务app小程序开发,未来服务业赚钱的新风口 ~
    许多做家政、维修本地生意的创业者应该都了解过,近几年,生活服务移动软件的类型开始变得越来越多,市场的份额也越来越大。无论移动互联网市场的更迭的速度多快,本地生活服务APP和小程序都是留存时间是最久的,因为它的实用便捷性让现代人越来越离不开它。尤其是口罩过后,我们对线上的......
  • uniapp自定义富文本编辑器+内容渲染回显功能(多端可用)
    这个编辑器app端、H5端、小程序端都可以用,这里以小程序为例。先上效果图,文本编辑、样式调整、图片上传等各项功能皆可满足。一、整体介绍 使用富文本编辑并且可以渲染内容这个功能,主要涉及到两个页面。①触发编辑的页面(按钮+接收富文本内容)②编辑器页面(效果图页面)二......