做网站有必要?wordpress文章展示页

bicheng/2026/1/22 10:45:55/文章来源:
做网站有必要?,wordpress文章展示页,wordpress 存储视频教程,怎样建设档案馆网站前言如今前后端分离开发模式如火如荼#xff0c;开发职责更加分明#xff08;当然前后端一起搞的模式也没有完全褪去#xff09;#xff1b;而对于每个公司产品实施来说#xff0c;部署模式会稍有差别#xff0c;有的会单独将前端文件部署为一个站点#xff0c;有的会将… 前言如今前后端分离开发模式如火如荼开发职责更加分明当然前后端一起搞的模式也没有完全褪去而对于每个公司产品实施来说部署模式会稍有差别有的会单独将前端文件部署为一个站点有的会将前端文件和后端站点整合一起部署通常当项目规模比较大的时候分开站点部署是不错的选择管理和维护清晰而对于一些小型项目整合在一起部署为一个站点就显得相对比较方便毕竟有时候开发是你、部署是你、维护也是你如果选择整合部署或者是项目包含静态文件(如图片)的访问接下来的内容就有用武之地了~~~正文Asp.NetCore的请求管道是根据需求通过注册中间件进行构造的(构造过程参考跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建)而通过模板创建出来的项目请求管道中默认只有关键的几个中间件如果有其他需要可以自己添加注册。其中静态文件中间件默认就没有如下案例如上例运行结果是访问不到添加的index.html可能有小伙伴会说那是因为没有加目录然而并不是这个原因 现在注册上静态文件中间件试试为什么要创建wwwroot目录呢其他目录不行吗当注册静态文件中间件时通过构造函数可以看出(看下面静态文件中间件的构造函数截图)可以指定对应的静态文件目录当没有指定目录时默认就会使用IHostingEnvironment中的WebRootFileProvider而WebRootFileProvider默认就指定了wwwroot在IHostingEnvironment的扩展方法Initialize中指定这里就不一一去扒代码了如果有兴趣的小伙伴可以按照以下思路去扒那如何指定目录在扒代码的过程中应该会看到注册中间件的时候可以传参进行指定如下根据需求可以注册多个静态文件中间件如上所示请求到请求管道时会先到wwwroot目录中去找匹配文件如果找不到继续下一个中间件去指定的myFile目录中去匹配文件。往往在开发过程中会对相关静态文件进行分类同时Url地址也要不同通常会通过注册中间件时将对应静态文件目录映射到指定Url目录如下搞过IIS的小伙伴应该都知道设置默认文件的配置吧通过现成的中间件也能实现如下注册中间件实现能减少配置当然也是不错的选择到这小伙伴们应该尝试一下将wwwroot目录下的index.html的名字改改再运行一下同样的访问Url地址肯定访问不了的如果能那估计是存在缓存可以清清缓存再试 那为什么呢定位很精确肯定是默认文件这个中间件再搞事情来看看里面咋实现的// 定义默认文件中间件 public class DefaultFilesMiddleware {// 选项配置private readonly DefaultFilesOptions _options;private readonly PathString _matchUrl;private readonly RequestDelegate _next;// 静态文件目录读取Provider默认目录是wwwrootprivate readonly IFileProvider _fileProvider;// 构造函数用于初始化对应的变量public DefaultFilesMiddleware(RequestDelegate next, IWebHostEnvironment hostingEnv, IOptionsDefaultFilesOptions options){// 校验参数if (next null){throw new ArgumentNullException(nameof(next));}if (hostingEnv null){throw new ArgumentNullException(nameof(hostingEnv));}if (options null){throw new ArgumentNullException(nameof(options));}_next next;// 初始化配置信息_options options.Value;// 如果没有指定对应的IFileProvider就用IWebHostEnvironment的WebRootFileProvider默认目录就wwwroot_fileProvider _options.FileProvider ?? Helpers.ResolveFileProvider(hostingEnv);_matchUrl _options.RequestPath;}// 默认文件中间件的关键方法public Task Invoke(HttpContext context){if (context.GetEndpoint() null Helpers.IsGetOrHeadMethod(context.Request.Method) Helpers.TryMatchPath(context, _matchUrl, forDirectory: true, subpath: out var subpath)){var dirContents _fileProvider.GetDirectoryContents(subpath.Value);if (dirContents.Exists){// 依次遍历默认文件检查对应文件是否在指定目录中存在这里是关键for (int matchIndex 0; matchIndex _options.DefaultFileNames.Count; matchIndex){string defaultFile _options.DefaultFileNames[matchIndex];var file _fileProvider.GetFileInfo(subpath.Value defaultFile);// TryMatchPath will make sure subpath always ends with a / by adding it if needed.if (file.Exists){// 如果路径与目录匹配但没有以斜杠结尾则重定向以添加斜杠.// This prevents relative links from breaking.if (!Helpers.PathEndsInSlash(context.Request.Path)){context.Response.StatusCode StatusCodes.Status301MovedPermanently;var request context.Request;var redirect UriHelper.BuildAbsolute(request.Scheme, request.Host, request.PathBase, request.Path /, request.QueryString);context.Response.Headers[HeaderNames.Location] redirect;return Task.CompletedTask;}// 如果匹配找到就重写请求地址由下一个中间件处理所以在个中间件的注册一定要在UseStaticFiles前面否则会报错context.Request.Path new PathString(context.Request.Path.Value defaultFile);break;}}}}// 执行下一个中间件return _next(context);} } 在中间件Invoke方法中遍历_options.DefaultFileNames进行匹配但我们并没有指定猜想应该是有默认设置去看看对应的DefaultFilesOptionspublic DefaultFilesOptions(SharedOptions sharedOptions): base(sharedOptions) {// 果然在构造函数中指定了默认列表DefaultFileNames new Liststring{default.htm,default.html,index.htm,index.html,}; } 果然在DefaultFilesOptions的构造函数有对应的默认列表现在是不是豁然开朗了~~~那如果一定要指定其他文件怎么办呢老规矩注册中间件时传参是不是很简单再来个需求比如想做一个在线文件管理系统那肯定得访问目录吧现在肯定不能访问的小伙伴们可以试试 通过注册中间又可以实现是不是觉得中间件很是灵活而且还很强大这里对于参数的设置就不一一举例了用法和UseStaticFiles参数差不多一致小伙伴感兴趣可私下试试。其实微软早就想到一会要这么干一会要那么干了所以直接提供了一个全功能的中间件直接UseFileServer即可可以针对上面说到的每一项进行配置如下其实内部就是整合以上说到的中间件如下源码详细配置这里就不一一配置测试了使用和单独注册中间件时一致这里只是整合在一起而已。总结说好的偏应用还是没忍住扒代码但是感觉适当的扒扒能说的更清楚一些下一节说说路由的最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设公司怎样布局建网站的外包公司

这是头哥侃码的第233篇原创在过去的五年里,我最怕遇到两件事。一是失眠,一个人半夜醒来,瞬间毫无困意,只能瞪大眼睛望着天花板数羊,等待着黎明的到来。二是每到春节之前,在进行团队年度绩效评估和年终奖发放…

全国教育平台网站建设国家企业信用公信系统入口

一、引言 随着互联网的快速发展,电子商务行业正在迅速崛起,其中拼多多以其独特的商业模式和创新的商品详情API,成为了行业内的佼佼者。本文将深入探讨拼多多商品详情API的技术特点、实现方式及其在电子商务解决方案中的应用。 二、拼多多商…

网页与网站设计说明软件开发和网站开发区别

一、事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间。 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字。 事件是javaScript和DOM之间交互的桥梁。 你若触发,我便执行——事件发生,调用它的…

苏州北京网站建设评估企业网站建设

TCP 断开连接是通过四次挥手方式。 双方都可以主动断开连接,断开连接后主机中的「资源」将被释放, 刚开始双方都处于 establised 状态,假如是客户端先发起关闭请求,过程如下图: 第一次挥手:客户端打算关闭…

北京单位网站建设培训做电商有那个网站

在自动化中, Selenium 自动化测试中有一个名字经常被提及 PageObject( 思想与面向对象的特征相 同 ) ,通常 PO 模型可以大大提高测试用例的维护效率 优点:可重用,业务和对象分离,代码结构清晰,方便代码维护 核心要素 …

做互联网小程序 和网站有没有前景wordpress加slider

一、匿名类:[ C# 3.0/.NET 3.x 新增特性 ] 1.1 不好意思,我匿了 在开发中,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名类的语法中并没有为其命名,而是直接的一个new { }就完事了。从外部看来…

做电影网站有什么好处南昌市有帮做网站的吗

ChatGPT是一种基于生成式预训练的语言模型,它的基本技术包括预训练和微调。下面我将为你解释这些技术及其原理。 1. 预训练(Pre-training): ChatGPT的预训练阶段是在大规模的文本数据上进行的。模型通过对大量的互联网文本进行自监督学习来学…

四川住房建设厅网站首页建设网点查询

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开发。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&#x…

vi企业整套设计公司啥是东莞网站优化推广

对象池 使用对象池:频繁地创建和销毁对象会导致性能下降和内存碎片化。对象池可以预先创建一些对象,然后在需要时从池中取出,不再使用时再放回池中。 减少Draw Calls Draw Call是指CPU向GPU发送绘制命令的次数。减少Draw Call可以通过批处理…

网站建设大致步骤旅游网站建设前期分析

写在前面好久没有写博客了,一直在不断地探索响应式DDD,又get到了很多新知识,解惑了很多老问题,最近读了Martin Fowler大师一篇非常精彩的博客The LMAX Architecture,里面有一个术语Mechanical Sympathy,姑且…

网站 目录 结构上海刚刚发生的大事

一、上新 1. 有向图 从顶点A到顶点B的边,不等于从B到A的边。 2. 广度优先 遍历开始节点(第一层)的邻节点(从左至右顺序),邻接点设为第二层根据1中遍历邻接点从左往右的顺序遍历。 bilibili视频《广度优…

重庆网站制作特点优势网站建设技能

文章目录 前言一、消费者确认机制二、失败重试机制三、失败处理策略四、业务幂等性唯一消息ID业务判断 五、兜底方案总结 前言 当RabbitMQ向消费者投递消息以后,需要知道消费者的处理状态如何。因为消息投递给消费者并不代表就一定被正确消费了,可能出现…

安徽省城乡建设网站学校网站建设需求文档

一 选择排序 原理:选择排序很简单,他的步骤如下: 从左至右遍历,找到最小(大)的元素,然后与第一个元素交换。从剩余未排序元素中继续寻找最小(大)元素,然后与第二个元素进行交换。以此…

天圆地方建筑网站企业网站四种类型

先推广一下QQ群:61618925。欢迎各位爱好编程的朋友加入。 一、程序界面 二、关键部分代码: 1.数据结构定义 #define MBRSIZE 512 #define BOOTRECORDSIZE 440 #define DISKSIGNEDSIZE 4 #define RESERVESIZE 2 #define DPTNUMBER 4 #define DPTSIZE 16 #…

临沂网站建设昂牛网络网站建设与管理好处

上链接:【深基16.例1】淘汰赛 - 洛谷https://www.luogu.com.cn/problem/P4715 上题干: 题目描述 有 2^n(n≤7)个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值…

优质聊城做网站公司网站流量 次

目录 一,创建登录ui界面类 LoginWidget 二,添加图片资源 三,通过样式的方法将图片设置成圆圈的背景 四,新建登录后的ui界面 MWindow 简陋的就可以,因为只为了学习,可以自己补充 五,新建三个嵌套ui界面类,ChatWidget聊天界面 FriendWiidget好友界面 CollectW…

服装购物商城网站建设wordpress 收费主题下载

图源:文心一言 听课笔记简单整理,供小伙伴们参考,包含以下内容“🐋3.11 引用类型、🐋3.14 内联函数、🐋3.15 默认参数值、🐋3.16 函数重载、🐋3.17 C系统函数”~🥝&…

网站网址怎么写网站域名如何查询

Statement对象和查询结果集 Statement对象相关的方法 Connection接口中获取数据库操作对象Statement对象的方法 方法名功能Statement createStatement()创建Statement对象 Statement对象执行增删改查的SQL语句(不含占位符"?")的方法,JDBC中的SQL语句不需要提供分…

网站内容建设的原则是什么意思酒店找人做网站

WebRTC是音视频直播中最常用的一个框架,在使用的过程中,我们就需要实现一个服务器端。本文以nodejs实现一个服务器为例,讲述一下在centos下如何用nodejs实现一个简单的web服务器。 一、安装nodejs 在linux环境下安装nodejs有多重方式&#x…

深圳市鸿运通网站建设郑州鹏之信网站建设

之前因为工作中用的都是SVN版本控制工具,没接触过git和github,现在开始深入自学Django框架技术后,看到官网推荐使用git,然后这两天网上查阅了很多文章教程,学到入门操作需要学习的点,太多的知识点要后面慢慢…