docs: 添加工单#050 量子浏览器修复报告
This commit is contained in:
parent
4b955d3bc3
commit
4a5d9a1dc6
|
|
@ -0,0 +1,146 @@
|
|||
# 工单 #050 - NAC 量子全息区块浏览器路由修复与功能验证
|
||||
|
||||
**工单编号**: #050
|
||||
**状态**: ✅ 已关闭
|
||||
**日期**: 2026-02-27
|
||||
**优先级**: 高
|
||||
**负责模块**: `/opt/nac-quantum-browser`
|
||||
**访问地址**: https://explorer.newassetchain.io
|
||||
|
||||
---
|
||||
|
||||
## 问题描述
|
||||
|
||||
NAC 量子全息区块浏览器的以下功能无法正常工作:
|
||||
1. **区块详情页** (`/block?n=100`) — 返回首页内容而非区块详情
|
||||
2. **搜索功能** (`/search?q=100`) — 返回"未找到结果"而非正确的区块信息
|
||||
|
||||
---
|
||||
|
||||
## 根本原因分析
|
||||
|
||||
### 问题一:Nginx PATH_INFO 未传递(区块详情页路由失败)
|
||||
|
||||
**诊断过程**:
|
||||
- PHP CLI 测试:`BLOCK_PAGE_OK` ✅(路由正确)
|
||||
- PHP-FPM 测试(不带 PATH_INFO):返回首页内容 ❌
|
||||
- PHP-FPM 测试(带 PATH_INFO):`区块详情` ✅
|
||||
|
||||
**根本原因**:ThinkPHP 6 的路由解析依赖 `PATH_INFO` 环境变量。Nginx 的 `fastcgi_params` 文件没有包含 `PATH_INFO` 参数,导致 PHP-FPM 无法获取路径信息,ThinkPHP 路由回退到默认的 `index()` 方法(首页)。
|
||||
|
||||
**原始 Nginx 配置(错误)**:
|
||||
```nginx
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass unix:/tmp/php-cgi-81.sock;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
# 缺少 PATH_INFO 参数!
|
||||
}
|
||||
```
|
||||
|
||||
### 问题二:搜索控制器 API 响应格式解析错误
|
||||
|
||||
**诊断过程**:
|
||||
- NAC API 实际返回格式:`{"type":"block","data":{...区块数据...}}`
|
||||
- 控制器代码错误读取:`$raw['data']['type']`(应为 `$raw['type']`)
|
||||
- 控制器代码错误读取:`$raw['data']['block']`(应为 `$raw['data']`)
|
||||
|
||||
---
|
||||
|
||||
## 修复方案
|
||||
|
||||
### 修复一:Nginx 配置添加 PATH_INFO 支持
|
||||
|
||||
**文件**: `/www/server/panel/vhost/nginx/explorer.newassetchain.io.conf`
|
||||
|
||||
```nginx
|
||||
# 修改 location 规则支持 PATH_INFO
|
||||
location ~ [^/]\.php(/|$) {
|
||||
fastcgi_pass unix:/tmp/php-cgi-81.sock;
|
||||
fastcgi_index index.php;
|
||||
# 分离 PATH_INFO(ThinkPHP 路由依赖此参数)
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
|
||||
include fastcgi_params;
|
||||
fastcgi_connect_timeout 60s;
|
||||
fastcgi_send_timeout 60s;
|
||||
fastcgi_read_timeout 60s;
|
||||
}
|
||||
```
|
||||
|
||||
同时修改 URL 重写规则:
|
||||
```nginx
|
||||
location / {
|
||||
if (!-e $request_filename) {
|
||||
rewrite ^(.*)$ /index.php?s=$1 last;
|
||||
break;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 修复二:搜索控制器 API 解析逻辑
|
||||
|
||||
**文件**: `/opt/nac-quantum-browser/app/controller/Index.php`
|
||||
|
||||
```php
|
||||
// 修复前(错误)
|
||||
$type = $raw['data']['type'] ?? '';
|
||||
if ($type === 'block' && !empty($raw['data']['block'])) {
|
||||
$b = $raw['data']['block'];
|
||||
|
||||
// 修复后(正确,兼容两种格式)
|
||||
$type = $raw['type'] ?? ($raw['data']['type'] ?? '');
|
||||
if ($type === 'block') {
|
||||
$b = $raw['data'] ?? [];
|
||||
if (empty($b['number']) && !empty($raw['data']['block'])) {
|
||||
$b = $raw['data']['block'];
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 验证结果
|
||||
|
||||
| 页面 | URL | 修复前 | 修复后 |
|
||||
|------|-----|--------|--------|
|
||||
| 首页 | `/` | ✅ 正常 | ✅ 正常 |
|
||||
| 区块列表 | `/blocks` | ✅ 正常 | ✅ 正常 |
|
||||
| 区块详情 | `/block?n=100` | ❌ 返回首页 | ✅ 显示区块详情 |
|
||||
| 节点状态 | `/nodes` | ✅ 正常 | ✅ 正常 |
|
||||
| 搜索 | `/search?q=100` | ❌ 未找到结果 | ✅ 找到区块 #100 |
|
||||
|
||||
---
|
||||
|
||||
## Git 提交记录
|
||||
|
||||
```
|
||||
commit 6c72f67
|
||||
feat: NAC 量子全息区块浏览器 v1.0 - 工单#050
|
||||
仓库路径: /opt/nac-quantum-browser/.git
|
||||
54 files changed, 3531 insertions(+)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 系统信息
|
||||
|
||||
- **服务器**: 103.96.148.7:22000
|
||||
- **Web 框架**: ThinkPHP 6
|
||||
- **PHP 版本**: PHP-FPM 8.1
|
||||
- **Web 服务器**: Nginx 1.26.3(宝塔面板)
|
||||
- **WebSocket**: Workerman(端口 9553)
|
||||
- **NAC API**: http://localhost:9551
|
||||
|
||||
---
|
||||
|
||||
## 关联工单
|
||||
|
||||
- 工单 #047/#048: NAC Explorer API 去除模拟数据(已关闭)
|
||||
- 工单 #050: 量子浏览器路由修复(本工单,已关闭)
|
||||
|
||||
---
|
||||
|
||||
*记录人: NAC Dev | 2026-02-27*
|
||||
Loading…
Reference in New Issue