记录自己第一次将React 编写的前端部署到服务器,实现外网访问

0.  本地项目添加配置

  1. 在本地 VS Code 打开项目。
  2. 打开根目录下的 vite.config.js 文件。

在 plugins 同级的位置,添加一行 base 配置:

import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], base: '/delayed-coking-demo/', // <--- 加上这一行,注意前后都有斜杠 })

1. 在你的开发电脑(本地)VS Code 终端运行,确保根目录下生成了dist 文件夹。

npm run build

2. 在服务器上安装 Nginx

远程桌面的那个 Windows 里操作(就像操作你自己的电脑一样):

  1. 下载 Nginx
    • 打开服务器里的 Edge 浏览器(或者你在本地下载好,复制粘贴进去)。
    • 访问:http://nginx.org/en/download.html
    • 下载 Stable version 下面的 nginx/Windows-1.xx.x (zip格式)。
  2. 解压
    • 将下载的压缩包解压到 C 盘根目录,例如:C:\nginx
    • 打开这个文件夹,你会看到 nginx.exe 和 confhtml 等文件夹。

3 . 上传你的项目代码

  1. 回到远程桌面(服务器)
  2. 进入 C:\nginx-1.28.1\html 文件夹。
  3. 新建一个文件夹,命名为 delayed-coking-demo
  4. 把你刚刚重新打包生成的本地 dist 文件夹里面的所有内容(index.html, assets 等),复制粘贴到服务器的这个新文件夹里。

4. 修改 Nginx 配置 (解决路由刷新 404)

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # --- 这里开始是 Server 配置 --- server { listen 80; server_name localhost; # 1. 默认根目录 (访问 http://ip 时显示的内容) # 只要 html 文件夹里有 index.html,这里就会显示 location / { root html; index index.html index.htm; } # 2. 你的新项目 (访问 http://ip/delayed-coking-demo 时显示) # 请确保你已经在 html 文件夹里新建了 delayed-coking-demo 文件夹 # 并把 build 好的代码放进去了 location /delayed-coking-demo { root html; index index.html; # 这里的路径必须和你的 base 保持一致 try_files $uri $uri/ /delayed-coking-demo/index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # --- Server 配置结束 --- }

5 . 启动 Nginx

  1. 在服务器文件夹里,双击 nginx.exe
    • 注意:双击后屏幕会闪一下黑框然后消失,这是正常的!它已经在后台运行了。
    • 如果有防火墙弹窗,请点击“允许访问”
  2. 验证是否运行:打开服务器里的 Edge 浏览器,访问 http://localhost。如果能看到你的延迟焦化系统,说明服务器内部部署成功了

6 . 最关键的一步 —— 阿里云安全组配置

这是新手最容易卡住的地方。即使服务器里配置好了,阿里云的外部防火墙如果不放行,外网还是进不去。

  1. 回到你的阿里云网页控制台(就是你截图的那个页面)。
  2. 点击页面中间的选项卡 “网络与安全组”
  3. 找到 “安全组配置” 或 “配置规则” 链接点击进入。
  4. 点击右上角的 “添加安全组规则”(或手动添加):
    • 端口范围:输入 80/80 (或者是 HTTP 80)。
    • 授权对象 (源 IP):输入 0.0.0.0/0 (表示允许全世界访问)。
    • 协议类型:TCP。
    • 策略:允许。
  5. 保存规则。

7.  外网, 输入 http://公网ip/delayed-coking-demo ,就可以访问到项目了

Read more

MK米客方德SD NAND:无人机存储的高效解决方案

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下,飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往,SD 卡是飞控 LOG 记录常见的存储介质,但随着技术的革新,新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无人机,创新性采用 SD NAND 芯片 MKDV32GCL-STPA 芯片进行 SD NAND 存储,测试其在飞控 LOG 记录功能中的表现。 米客方德 SD NAND 芯片特性 免驱动优势:与普通存储设备不同,在该应用场景下,SD NAND 无需编写复杂的驱动程序。这极大地简化了开发流程,缩短了开发周期,减少了潜在的驱动兼容性问题,让开发者能够更专注于实现核心功能。 自带坏块管理功能:存储设备出现坏块难以避免,而 MKDV32GCL - STPA 芯片自带的坏块管理机制可自动检测并处理坏块。这确保了数据存储的可靠性,避免因坏块导致的数据丢失或错误写入,提升了整个存储系统的稳定性。 尺寸小巧与强兼容性:

iOS开发针对苹果新系统iOS26的兼容适配UITabBarButtonItem & UITabBar的液态玻璃效果/当前wifi ssid获取

1. UITabBarButtonItem液态玻璃效果         兼容处理:         第一种方式(不推荐):把所有的UITabBarButtonItem关闭液态玻璃效果: if (@available(iOS 26.0, *)) { self.navigationItem.rightBarButtonItem.hidesSharedBackground = YES; self.navigationItem.leftBarButtonItem.hidesSharedBackground = YES; } else { // Fallback on earlier versions }         第二种方式:所有导航栏按钮全部采用UITabBarButtonItem,支持液态玻璃效果。         第三种方式:降低Xcode版本到Xcode25及以下版本,然后再打包         第四种方式:使用兼容模式显示传统UI风格,也就是取消TabBar液态玻璃效果:         打开info.plist,添加一个Boolean键值对,取消液态玻璃效果,

ESP32-C6物联网开发实战:基于Wi-Fi 6与BLE 5.2的智能家居节点设计

ESP32-C6物联网开发实战:基于Wi-Fi 6与BLE 5.2的智能家居节点设计

文章目录 * 摘要 * 一、项目概述 * 1.1 智能家居节点需求分析 * 1.2 ESP32-C6核心优势 * 二、开发环境配置 * 2.1 硬件准备 * 2.2 软件环境配置 * 三、Wi-Fi 6通信实现 * 3.1 STA模式连接代码 * 3.2 TWT节能配置 * 四、BLE 5.2功能开发 * 4.1 BLE服务构建 * 4.2 2M PHY高速模式 * 五、系统集成 * 5.1 传感器数据采集 * 5.2 继电器控制代码 * 六、云端交互 * 6.1

机器人室内导航新纪元:SLAM与‘室内GPS’融合终结定位‘鬼打墙’

机器人室内导航新纪元:SLAM与‘室内GPS’融合终结定位‘鬼打墙’

如果你观察过仓储机器人的运行,可能会发现一个有趣现象:刚充满电出发的AGV矫健精准,但工作几小时后,它经过货架时总会莫名多“蹭”一下边——这不是程序设定的仪式感,而是SLAM算法累积误差在作祟。 漂移宿命:SLAM的“记忆模糊症” 激光SLAM的本质,是让机器人通过对比连续时刻的环境特征,推算出自己“相对刚才的位置”移动了多少。这种相对定位方式就像蒙眼走路——每一步的微小误差都会叠加,最终导致轨迹偏离。 学术界将这一问题称为“累积漂移”。研究数据显示,即便是配置16线激光雷达的高端方案,在长直走廊或结构重复的仓库中运行10分钟后,定位误差也可能突破10厘米阈值。更棘手的是,当环境发生动态变化——比如货架被移动、有新障碍物出现——激光SLAM的地图匹配可能彻底失效,导致机器人瞬间“失忆”。 工程师们尝试用多传感器融合弥补这一缺陷:激光+IMU+编码器+视觉的组合成为主流,紧耦合算法、因子图优化等技术不断迭代。这些方案确实提升了短期精度,但本质仍是“相对+相对”的堆叠——就像让蒙眼者戴上更灵敏的耳塞,却始终无法真正睁开眼睛。 融合破局:给激光雷达装上“北斗卫星”