news 2026/9/18 18:36:46

IIS安装与配置完全指南:从零搭建网站发布环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IIS安装与配置完全指南:从零搭建网站发布环境

1. 安装前的准备工作:别急着点下一步

很多朋友一上来就打开控制面板勾选IIS,结果装完发现少这少那,或者装好了也打不开页面,白白浪费一两个小时。我在Windows Server和Win10/Win11上都搭过无数次IIS环境,今天把最新的安装步骤和踩过的坑整理成一篇完整图文,从零开始带你装明白、配清楚,顺便把常见报错一并解决掉。

先说IIS是什么。IIS(Internet Information Services)是微软自带的Web服务器组件,用来承载网站、Web应用、API接口、FTP服务等。很多企业内网系统、旧版ASP.NET项目、甚至一些PHP和Python项目,都跑在IIS上。相比于Apache和Nginx,IIS的图形化管理界面非常直观,尤其适合Windows环境下的新手和运维人员。

1.1 版本选择与系统版本确认

在动手之前,先确认你用的系统到底支不支持IIS,以及支持到什么版本。这一步极其关键,不少人装完IIS之后发现功能不全,就是版本没搞清楚。

操作系统默认IIS版本支持.NET版本
Windows Server 2008 R2IIS 7.5.NET 2.0/3.5/4.0
Windows Server 2012 / R2IIS 8.0 / 8.5.NET 2.0/3.5/4.5+
Windows Server 2016IIS 10.0.NET 2.0/3.5/4.7+
Windows Server 2019IIS 10.0.NET 2.0/3.5/4.8+
Windows Server 2022IIS 10.0.NET 2.0/3.5/4.8+
Windows 10 / 11 (专业版/企业版)IIS 10.0.NET 2.0/3.5/4.8+

Win10和Win11的家庭版不直接提供完整的IIS功能,建议升级到专业版或者直接用Server版。如果你只在本地做开发测试,Win10/11专业版完全够用;如果是生产环境,毫不犹豫选Windows Server系列。

这里还要特别注意,系统必须是正版激活状态。我遇到过一位朋友用了一台未激活的Win Server 2019,装IIS一直失败,后台服务总是自动停止,折腾一整天最后发现是KMS激活失效导致的系统服务异常。别在这种基础环节上翻车。

1.2 安装前必须做的系统检查

确认系统版本没问题后,打开“控制面板 → 程序和功能 → 启用或关闭Windows功能”,先看一眼里面有没有“.NET Framework 3.5”这一项。IIS的ASP.NET功能依赖.NET环境,很多网站程序(尤其是老项目)要求.NET 3.5甚至2.0,所以建议直接把“.NET Framework 3.5(包括.NET 2.0和3.0)”勾上。如果系统没联网,安装.NET 3.5时会卡住,这时候需要准备系统镜像或者用DISM命令离线安装。

再有一个容易被忽视的检查项:系统更新。在“设置 → 更新和安全 → Windows更新”里确认系统补丁已经打全。IIS的某些功能模块(比如WebDAV、FTP发布)依赖系统更新提供的组件,老旧的系统装最新IIS功能包时经常莫名其妙的失败,基本都是补丁缺失。

最后,建议关闭服务器上不用的杀毒软件或者实时监控程序。这里指的是第三方杀软比如360、火绒等,它们在IIS安装过程中会拦截组件的注册表写入,导致安装中途报错。Windows自带的Defender通常不会干扰IIS安装,可以不用管。等IIS装好后再把杀软开回来就行。

1.3 准备工作清单

我把完整步骤里的所有前置条件整理成一份清单,方便你对照检查:

  • [ ] 当前Windows版本支持IIS(Server版或Win10/11专业版)
  • [ ] 系统已激活,更新已完成
  • [ ] 已确认需要安装的IIS功能组件(Web、FTP、管理工具等)
  • [ ] 已备份重要网站数据和配置(如果是从旧环境迁移)
  • [ ] 本机或局域网内可以访问的域名或IP(测试用)
  • [ ] 预留磁盘空间(IIS核心组件约200MB,加上日志会更多)

准备工作做完,下面进入安装环节。我会给出两种方式:图形化安装和PowerShell安装,大家按需选择。

2. IIS安装全过程:图形化操作一步步来

2.1 控制面板进入Windows功能

按快捷键Win + R,输入control回车,打开控制面板。找到“程序”,点“启用或关闭Windows功能”。如果你用的是Windows Server,入口路径是“服务器管理器 → 添加角色和功能”,后续步骤相似,但Server版多了一个“角色选择”向导,照提示一路“下一步”就行。

打开“Windows功能”窗口后,你会看到一长串功能列表,滚动找到“Internet Information Services”这个节点。第一次点开它,默认只勾选了“Web管理工具 → IIS管理控制台”和“万维网服务 → 静态内容”等几项,这远远不够。

2.2 必装功能组件详解

我建议你按照下面的清单把核心组件都勾上,这样后面配置网站、应用程序池、FTP、日志等都会省心很多。下面用表格列出每一项的作用:

功能节点子功能作用
Web管理工具IIS管理控制台提供IIS图形化管理界面
Web管理工具IIS管理脚本和工具命令行管理IIS
Web管理工具管理服务远程管理IIS时需要
万维网服务 → 常见HTTP功能静态内容、默认文档、目录浏览、HTTP错误等支持HTML、图片、JS、CSS等静态资源访问
万维网服务 → 运行状况和诊断HTTP日志、请求监视、跟踪日志记录和排错必备
万维网服务 → 性能功能静态内容压缩、动态内容压缩提升网站访问速度
万维网服务 → 安全请求筛选、IP和域限制、URL授权网站安全基础防护
应用程序开发功能ASP.NET、.NET扩展性、ISAPI扩展、ISAPI筛选器、CGI运行动态网站的关键
FTP服务器FTP服务、FTP扩展提供文件上传下载服务

看到这里可能有朋友会问:我把所有功能全勾上不就行了?其实容易引发安全问题,因为某些组件(比如“目录浏览”)默认开着,可能会暴露服务器文件结构。我个人的建议是:核心按上表勾选,FTP如果暂时用不上就不勾,后续需要再加也一样随时能加,不需要重装系统。

注意一个细节:当你勾选“应用程序开发功能”的时候,系统可能会弹窗提示需要同时启用“.NET Framework 3.5”和“.NET Framework 4.8”等,确认勾选然后点“确定”继续。如果系统提示需要联网下载文件,选择“通过Windows更新下载”即可。

2.3 安装过程的等待与可能卡点

点“确定”后,系统开始安装组件。这个过程一般3到10分钟,取决于系统性能和磁盘速度。有几类设备或环境会卡在“正在配置功能”这一步很久:

一是旧机械硬盘,安装进度条卡在80%十几分钟很正常,耐心等就是。二是权限不足的账户,如果你当前登录的账户没有管理员权限,安装到一半可能会出现“拒绝访问”之类的报错,必须换到管理员账户再操作。三是系统镜像源损坏,安装过程一直失败并提示“无法完成更改”,这时候需要使用DISM /Online /Cleanup-Image /RestoreHealth修复系统映像,然后重新安装。

安装完成后系统不会自动重启,但某些功能模块(比如FTP)可能要求重启后生效。我建议直接重启一次比较稳妥,尤其你是第一次装IIS。

2.4 PowerShell命令行安装方法

如果你需要在多台服务器上批量部署IIS,或者你习惯用命令行,可以用PowerShell。以管理员身份打开PowerShell:

Install-WindowsFeature Web-Server, Web-WebServer, Web-Common-Http, Web-Static-Content, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-App-Dev, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Health, Web-Http-Logging, Web-Performance, Web-Stat-Compression, Web-Dyn-Compression, Web-Security, Web-Filtering, Web-Mgmt-Console

执行完成后输入以下命令确认安装状态:

Get-WindowsFeature Web-Server | Select-Object Name, InstallState

看到InstallStateInstalled就表示安装成功。Server版系统还可以用DISM命令:

dism /online /enable-feature /featurename:IIS-WebServerRole /all

这种方式安装后同样需要确认功能是否启用。用命令行安装的好处是一次能把需要的子功能全部装完,不用像图形界面那样一个一个勾选,适合脚本化运维。

3. 安装完成后的第一件事:验证与初识IIS管理器

3.1 如何确认IIS安装成功

安装完成后,最简单的验证方法:打开浏览器,在地址栏输入http://localhost。如果能看到IIS默认的欢迎页面,那就说明安装成功了。注意,localhost默认访问80端口,如果80端口被其他程序占用(比如Nginx、Apache、VMware等后起服务),你需要先停掉它们再测试,否则会看到“拒绝连接”。

另一种验证方式:Win + R输入services.msc回车,在服务列表中找到“World Wide Web Publishing Service”,确认它的状态是“正在运行”,启动类型是“自动”。这个服务是IIS的核心后台服务,它挂了IIS就完全无法工作。

如果浏览器打不开,服务也正常,多半是防火墙拦截了80端口。在“控制面板 → Windows Defender防火墙 → 启用或关闭”里临时关掉防火墙再试一次,通了就说明是端口问题 —— 不用关防火墙,在“入站规则 → 新建规则 → 端口”里放行80端口即可。当然,生产环境不建议关防火墙,只放行要用到的端口是最安全的做法。

3.2 IIS管理器界面认识

Win + R,输入inetmgr回车,打开IIS管理器。左侧是“连接”面板,显示你的服务器节点和已创建的站点;中间是“功能视图”,列出各种配置模块比如ASP.NET、身份验证、默认文档、错误页等;右侧是“操作”面板,包含启动/停止站点、编辑权限等快捷操作。

第一次打开IIS管理器,你会看到默认站点Default Web Site已经存在。它的物理路径在C:\inetpub\wwwroot,IIS默认页就是这个目录下的iisstart.html。如果你访问localhost看到了欢迎页,说明整个链路通畅,接下来就是替换成自己的网站内容。

3.3 修改默认站点的基本属性

右键“Default Web Site”,选择“编辑绑定”,在“网站绑定”窗口选中http类型,点击“编辑”,可以修改端口、IP地址和主机名。比如你的服务器IP是192.168.1.100,希望网站通过这个IP的8080端口访问,就把“IP地址”填为192.168.1.100,“端口”改为8080,保存后重启站点。

主机名这里要重点说一下:如果你希望通过域名访问(比如 www.example.com),可以在“主机名”填入域名,然后在DNS服务商处把域名解析到这台服务器的IP上。如果不填主机名,则默认匹配所有未绑定的域名/IP。一个端口同时绑定多个主机名是IIS的虚拟主机方式,在企业内网中很常用,一台IIS服务器可以跑几十个网站,全靠这个功能撑起来。

提示:修改绑定后,一定记得在“管理服务”里重启W3SVC服务,或者直接在IIS管理器里“停止”再“启动”对应站点,配置才能完全生效。热重载能解决一部分问题,但改绑这种场景重启更保险。

4. 核心配置与网站发布:从默认页到正式站点

4.1 创建第一个正式站点

默认站点是给测试用的,实际生产环境建议为每个网站创建独立的站点。在IIS管理器左侧右键“网站”,选择“添加网站”,弹出的窗口需要配置四项内容:

  • 站点名称:填项目名或应用名,比如MyWebApp
  • 应用程序池:默认继承DefaultAppPool,也可以直接新建一个,比如MyWebAppPool
  • 物理路径:选择网站文件所在目录,比如D:\wwwroot\mywebapp
  • 绑定类型/IP/端口/主机名:按需填写,默认HTTP + 80端口 + 全部未分配IP

点击确定后,站点就创建好了。此时打开浏览器访问对应的地址,如果看到你放在物理路径下的文件内容,说明站点已正常服务。如果访问出现403.14,说明目录里没有默认文档(index.html、default.aspx等),IIS找不到可显示的首页文件。

4.2 应用程序池的深度配置

应用程序池是IIS里所有动态网站的运行容器,它隔离了不同站点的进程,一个站点崩溃不会拖垮其他站点。在IIS管理器左侧点击“应用程序池”,右侧能看到默认的两个:DefaultAppPool.NET v4.5(具体版本取决于系统)。

右键刚创建的MyWebAppPool,选择“高级设置”,里面有几个关键参数需要注意:

.NET CLR版本:如果你的站点是ASP.NET写的老程序(比如 .NET Framework 2.0/3.5),这里要选CLR 2.0或 CLR 4.0。很多老系统升级到新服务器后报500错误,就是因为默认池用的是无托管代码,而老站点需要CLR 2.0,没改这个参数才报错。

启动模式:建议选AlwaysRunning,这样IIS服务启动后应用程序池立即启动,不用等第一次用户访问时才初始化,避免首访延迟。当然代价是会常驻内存,服务器内存小的话就别用。

回收时间:默认的1740分钟(29小时)回收一次。对于长时间运行的在线应用(比如WebSocket长连接),建议把“特定时间回收”清空,或者把回收时间拉长到几万分钟。因为回收意味着工作进程重启,所有内存中的状态(Session等)都会丢失。

空闲超时:默认20分钟。站点如果长时间没人访问,工作进程会被回收释放,下次访问重新启动。测试环境无所谓,生产环境建议改为0(永不超时)或者调大,否则会经常出现“第一次访问特别慢”的现象。

4.3 默认文档设置

IIS默认按顺序查找以下文件作为首页:

  • Default.htm
  • Default.asp
  • index.htm
  • index.html
  • iisstart.htm
  • default.aspx

如果你站点首页是index.php或者main.html这种非默认名称,浏览器访问域名时会直接403。解决办法是双击IIS管理器中间的“默认文档”图标,在右侧点击“添加”,输入你首页的文件名,然后调整优先级到最上面。这个步骤在发布WordPress、PHP项目时特别容易踩坑,我帮人排查过好多次,最后都发现只是默认文档没配。

4.4 身份验证权限设置

部署完站点后访问出现401.2或403.2这类认证错误,通常是身份验证配置不对。双击“身份验证”,你会看到以下几个主要认证方式:

  • 匿名身份验证:必须“启用”,表示允许任何人无需登录即可访问
  • ASP.NET模拟:按需启用,通常关闭
  • 基本身份验证:需要用户名密码,企业内部系统常用
  • Windows身份验证:适合域环境使用

对于公网或者普通内网系统,只需要保留“匿名身份验证”启用即可。如果匿名验证未启用,访问会弹登录框,输入正确的Windows账号才能看到页面。我曾经在一个项目中遇到过这种情况,用户反映“网站要密码”,排查了半天就是装好IIS后误把匿名验证给关了,导致所有请求都被拦截。

4.5 错误页替换与自定义

IIS默认的错误页是英文的“403.14 Forbidden”或“500.19 Internal Server Error”,对终端用户来说非常不友好。你可以在“错误页”功能里添加自定义错误响应,在“操作”右侧选择“编辑功能设置”,把“错误响应”改为“详细错误信息”,这样开发调试时能看到真实报错内容。

生产环境建议反过来:把错误响应改为“自定义错误页”,统一返回一个友好的提示页面,不向用户暴露服务器内部异常详情,降低信息泄露风险。

提示:如果你调试时发现访问网站500错误但页面没有给出具体原因,可以直接在“错误页 → 编辑功能设置”里把“详细错误信息”开启,藏在500背后的真实异常就暴露出来了。改完记得刷新页面,异常信息会直接显示在浏览器上,比看Windows事件日志快得多。

5. 常见问题与排查技巧实录

5.1 安装失败的经典三连:0x800F081E、0x800F0906、0x800F0954

这几个错误码集中在“.NET Framework 3.5”功能安装失败上。上面提到过,离线环境或Windows更新不可用时,.NET 3.5会卡住。解决方法有两种:

第一种,准备一份和当前系统相同的ISO/安装镜像,在“Windows功能”勾选.NET 3.5时,点“指定备用源路径”,填入D:\sources\sxs这样的路径,系统会从镜像中提取组件完成安装。

第二种,使用DISM命令:

dism /online /enable-feature /featurename:NetFx3 /all /Source:D:\sources\sxs /LimitAccess

这里的D:\sources\sxs是镜像中WinSxS组件的路径,注意镜像版本必须和系统版本一致,否则会报“找不到源文件”。

5.2 访问网站提示“无法连接”或“404”

“无法连接”优先检查三个地方:IIS站点是否启动(看状态是否是“已启动”)、80端口是否被占用、防火墙是否放行端口。用下面的命令看端口占用情况:

netstat -ano | findstr :80

如果端口被其他进程占用,找到对应的PID,再在任务管理器里结束掉占用进程,或者在IIS里更换端口避开。

“404”则说明IIS服务已经在工作,只是找不到请求的资源。先检查物理路径下文件是否存在,再检查默认文档有没有配,最后看URL路径是否正确。404还有一种情况是URL重写规则(URL Rewrite)把请求拦截到了不存在的地址,常见于从Apache迁移过来的伪静态规则。

5.3 500.19 与 500.21 错误

500.19是IIS中最常见的配置错误,页面会提示“配置错误,由于权限不足无法读取配置文件”。这个问题绝大多数出在物理路径的NTFS权限上:运行应用程序池的身份(默认是IIS_IUSRS组和IUSR用户)对网站目录没有读取权限。

右键网站物理文件夹 → 属性 → 安全 → 编辑 → 添加IUSR,勾选“读取和执行”,再把IIS_IUSRS也添加过来同样给“读取和执行”权限,重启站点。这一步做完基本就解决了。

500.21的错误原因是模块配置有问题,通常是“在模块清单中找不到模块”。这多半是因为IIS缺少URL Rewrite模块或者WebSocket协议支持。需要安装URL RewriteWebSocket Protocol的对应功能,或者在“Windows功能”中勾选“WebSocket协议”,再或者到官网下载对应的IIS扩展模块。

5.4 发布.NET 8/新版ASP.NET Core到IIS的问题

很多朋友是带着“.NET 8跑不到IIS里”的疑问来搜IIS配置的。老实说,.NET 8(以及.NET Core 3.1+)项目部署到IIS不是传统意义的“放进wwwroot就行”,IIS负责反向代理,把请求转发给一个独立的Kestrel进程。具体步骤是:

  1. 在Visual Studio里右键Web项目 → 发布 → 选择“文件夹”,目标框架选net8.0,部署模式选框架依赖(服务器装了.NET 8 Runtime)或独立(服务器不用装)
  2. 把发布出来的文件整个拷到服务器目录
  3. 安装.NET 8 Hosting Bundle,这个包的作用是让IIS识别ASP.NET Core应用,相当于在IIS和Kestrel之间搭一座桥,不装的话网站一律502.5
  4. 在IIS里创建站点,应用程序池选择“无托管代码”,因为代码托管不归IIS管,Kestrel才是真正的执行环境
  5. 启动站点,浏览器访问

常见报错是HTTP 500.30或500.31,对应进程启动失败或初始化失败。查看事件查看器(eventvwr.msc→ Windows日志 → 应用程序)里有没有带Microsoft.AspNetCore.Server.Kestrel.NET Runtime的错误记录,按提示排查即可。90%的情况就是Hosting Bundle没装好,或者发布时选了框架依赖但服务器上对应的.NET运行时版本太旧。

5.5 IIS备份与还原

配置好一套IIS环境,别嫌麻烦,顺手做个备份。IIS的配置主要存在两个地方:配置文件在C:\Windows\System32\inetsrv\config\applicationHost.config,站点文件在你自己的物理路径下。我们一般用appcmd命令完成备份:

%windir%\system32\inetsrv\appcmd.exe add backup "MyBackup2024"

查看已有备份:

%windir%\system32\inetsrv\appcmd.exe list backup

还原恢复:

%windir%\system32\inetsrv\appcmd.exe restore backup "MyBackup2024"

这个方法背后用的是IIS自带的备份管理,完整备份了站点、应用程序池、绑定等所有配置。磁盘快照和虚拟机快照也很香,但纯配置层面的备份,appcmd绝对是最轻量的选择。我每次完成大型配置变更前都会先打一个备份,改挂了直接restore救回来,大大提升容错率。

5.6 一不小心“IIS没有.net8”

结合前面的部署方式,如果装完IIS后找不到 .NET 8 相关的配置项,多半是在“应用程序池 → 高级设置 → .NET CLR版本”里只看到了“无托管代码”和“CLR 4.0”这些选项,没有V4.0 8.x或类似选项。不要太意外,因为 .NET 8(ASP.NET Core)本来就不依赖IIS托管CLR,IIS中不需要也看不到传统的.NET CLR 版本下拉项。只要你的aspnetcore.dll和Hosting Bundle正常,站点能启动、页面能响应,这就是 .NET 8 到位的标志。如果你的老项目是 .NET Framework 4.8,那在池里选CLR 4.0就对了。

6. 进阶技巧与个人经验心得

6.1 目录浏览权限的合理利用

在服务器上做文件共享、下载站时,开启“目录浏览”功能能让访问者直接看到目录下的所有文件。双击站点或虚拟目录的“目录浏览”,点击“启用”,然后在浏览器访问对应URL,就能看到文件列表。但是记得两点:一是只对需要公开的目录开启,不要在根站点上开,否则整个网站的源文件结构都会暴露;二是结合“请求筛选”里的“隐藏段”功能把敏感目录(如binApp_Data)排除掉,双保险。

6.2 日志分析:让IIS告诉你哪里出问题

IIS默认开启的日志记录在C:\inetpub\logs\LogFiles,按日期生成W3C格式的日志文件。它的价值远超很多人的想象:当站点访问404或者慢,打开当天日志看那一条请求的状态码(像403、500这种),再结合URL直接锁定问题模块。举个例子,之前我遇到过所有CSS、JS都加载不出,页面布局全乱的站点,排查发现日志里这些静态文件请求全是404,而文件明明存在 —— 最后定位到是URL重写规则把静态文件请求也给重写转发掉了,日志帮了大忙。

6.3 别忘了给IIS设置性能上限

IIS默认的ASP.NET请求限制、并发连接数限制等参数在中小流量下基本够用,但一旦上线集成大量API请求的系统,建议在“ASP.NET → .NET编译”和“限制”里合理调大超时时间和队列长度。如果你碰到过“应用程序池停止”,先去事件查看器里确认是不是“特定时间内的崩溃次数太多”导致的自动禁用,IIS有快速失败保护机制,连续5次崩溃会自动停掉池。这未必是应用真崩溃,也可能是启动耗时太长被误判,把“快速失败保护”里的“故障数”调高或者“时间间隔”调大就能缓解。

6.4 搭建本地测试环境与内网发布

最后再分享一个实用场景。很多人搜IIS配置其实是为了搭建本地开发环境,把localhost玩转,再把站点发布到局域网里,手机、同事的电脑都能访问。做法:在你的IIS里绑定本机IP(比如192.168.1.100),防火墙放行80端口,局域网内的设备直接访问http://192.168.1.100就能打开你本地开发的网站。需要HTTPS就在站点绑定里加一条https协议,选择本机安装的SSL证书(前端开发常用的有mkcert签发本地证书)。这样你就能在公司内网里随时给同事演示最新功能,不用每回都导出打包文件传给别人。

我个人在实际操作中最强烈的建议就是:无论装IIS还是配站点,先想清楚你要跑什么类型的应用。纯静态HTML往wwwroot一扔就能跑;ASP.NET老项目重点检查.NET CLR版本和身份验证方式;ASP.NET Core项目装好Hosting Bundle;PHP项目配好FastCGI和PHP Manager模块。每一种应用在IIS上的配置重点完全不同,如果一上来就按默认配置往里怼程序,大概率会遇到一堆看着陌生、其实解法很常规的报错。

按照上面这套流程走一遍,从安装到发布基本不会卡壳了。如果碰到文中没提到的新报错,建议优先看Windows事件查看器,再配合IIS的日志文件,绝大多数问题都能通过这两处线索快速定位。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 18:35:45

STM32F407嵌入式网络系统重构:FreeRTOS+LwIP资源协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 18:31:54

走兼容通道 TaoToken,Hermes Agent 记忆调用能通吗?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 18:30:25

LVGL Pro v2:Figma+VSCode驱动的嵌入式UI开发新范式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 18:30:01

Nvidia L2 Cache poison换出会写回显存吗?ECC解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 18:28:08

Python+Selenium Web自动化测试框架设计:分层架构与工程实践

简介:这是一份基于PythonSelenium的web自动化测试框架设计与实现方向的毕业设计文档,适合软件测试初学者、自动化测试工程师以及正在搭建Selenium框架的开发者学习参考。内容从传统手工测试容易产生疲劳和测试盲点的弊端切入,系统讲解软件测试…

作者头像 李华
网站建设 2026/9/18 18:25:12

Godot源码编译:环境搭建、SCons构建与模块定制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华