diff --git a/README.md b/README.md index d0dad48..f93f221 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,45 @@ - **适用**: 功能演示,界面展示 - **限制**: 受CORS限制,无法调用真实API +## 📁 项目结构 + +``` +esim-tools/ +├── index.html # 主页面 - 工具选择 +├── src/ # 源代码目录 +│ ├── giffgaff/ # Giffgaff eSIM工具 +│ │ └── giffgaff_complete_esim.html +│ └── simyo/ # Simyo eSIM工具 +│ ├── simyo_complete_esim.html # 完整版(需要代理) +│ ├── simyo_static.html # 静态版(演示用) +│ └── simyo_proxy_server.js # CORS代理服务器 +├── docs/ # 文档目录 +│ ├── fixes/ # 问题修复说明 +│ │ ├── GIFFGAFF_OAUTH_FIX.md +│ │ └── GIFFGAFF_CSP_CALLBACK_FIX.md +│ ├── guides/ # 使用指南 +│ │ ├── CORS_SOLUTION.md +│ │ └── DEPLOYMENT_GUIDE.md +│ └── reference/ # 参考文档 +│ ├── README_giffgaff_esim.md +│ └── README_simyo_esim.md +├── tests/ # 测试文件 +│ ├── test_giffgaff_esim.html +│ └── test_simyo_esim.html +├── scripts/ # 脚本文件 +│ ├── start_simyo_server.sh +│ ├── start_simyo_server.bat +│ └── deploy.sh +├── postman/ # Postman脚本和参考文件 +│ ├── Giffgaff-swap-esim.json +│ ├── Simyo-swap-esim.json +│ ├── giffgaff.html +│ └── simyo.html +├── netlify.toml # Netlify部署配置 +├── package.json # Node.js依赖配置 +└── README.md # 项目说明 +``` + ### CORS解决方案 静态部署环境下通过以下方式解决跨域问题: 1. **推荐**: 使用公共服务 [esim.cosr.eu.org](https://esim.cosr.eu.org) @@ -164,15 +203,15 @@ 3. **本地代理服务器**: 运行Node.js代理 4. **浏览器插件**: 临时解决方案 -详细解决方案请参考 [CORS_SOLUTION.md](./CORS_SOLUTION.md) +详细解决方案请参考 [docs/guides/CORS_SOLUTION.md](./docs/guides/CORS_SOLUTION.md) ## 🧪 测试 ### 运行测试 ```bash # 在浏览器中打开测试页面 -open test_giffgaff_esim.html -open test_simyo_esim.html +open tests/test_giffgaff_esim.html +open tests/test_simyo_esim.html ``` ### 测试覆盖 @@ -210,7 +249,7 @@ open test_simyo_esim.html 如果您遇到问题或有建议,请: - 提交 [GitHub Issue](https://github.com/Silentely/esim-tools/issues) -- 查看 [常见问题解答](./DEPLOYMENT_GUIDE.md#故障排除) +- 查看 [常见问题解答](./docs/guides/DEPLOYMENT_GUIDE.md#故障排除) - 参考详细文档和使用指南 --- diff --git a/docs/PROJECT_RESTRUCTURE.md b/docs/PROJECT_RESTRUCTURE.md new file mode 100644 index 0000000..8d2af8d --- /dev/null +++ b/docs/PROJECT_RESTRUCTURE.md @@ -0,0 +1,155 @@ +# 项目架构重组说明 + +## 🔄 重组概述 + +为了更好地管理项目文件和提高可维护性,我们对整个项目进行了架构重组。 + +## 📁 新的目录结构 + +``` +esim-tools/ +├── index.html # 主页面 - 工具选择 +├── src/ # 源代码目录 +│ ├── giffgaff/ # Giffgaff eSIM工具 +│ │ └── giffgaff_complete_esim.html +│ └── simyo/ # Simyo eSIM工具 +│ ├── simyo_complete_esim.html # 完整版(需要代理) +│ ├── simyo_static.html # 静态版(演示用) +│ └── simyo_proxy_server.js # CORS代理服务器 +├── docs/ # 文档目录 +│ ├── fixes/ # 问题修复说明 +│ │ ├── GIFFGAFF_OAUTH_FIX.md +│ │ └── GIFFGAFF_CSP_CALLBACK_FIX.md +│ ├── guides/ # 使用指南 +│ │ ├── CORS_SOLUTION.md +│ │ └── DEPLOYMENT_GUIDE.md +│ └── reference/ # 参考文档 +│ ├── README_giffgaff_esim.md +│ └── README_simyo_esim.md +├── tests/ # 测试文件 +│ ├── test_giffgaff_esim.html +│ └── test_simyo_esim.html +├── scripts/ # 脚本文件 +│ ├── start_simyo_server.sh +│ ├── start_simyo_server.bat +│ └── deploy.sh +├── postman/ # Postman脚本和参考文件 +│ ├── Giffgaff-swap-esim.json +│ ├── Simyo-swap-esim.json +│ ├── giffgaff.html +│ └── simyo.html +├── netlify.toml # Netlify部署配置 +├── package.json # Node.js依赖配置 +└── README.md # 项目说明 +``` + +## 🔧 主要变更 + +### 1. **源代码组织** (`src/`) +- **Giffgaff工具**: 移动到 `src/giffgaff/` +- **Simyo工具**: 移动到 `src/simyo/`,包括完整版、静态版和代理服务器 + +### 2. **文档分类** (`docs/`) +- **修复说明** (`docs/fixes/`): OAuth修复、CSP修复等技术问题解决方案 +- **使用指南** (`docs/guides/`): CORS解决方案、部署指南等操作指南 +- **参考文档** (`docs/reference/`): 各工具的详细说明文档 + +### 3. **测试文件** (`tests/`) +- 集中管理所有测试文件 +- 便于自动化测试集成 + +### 4. **脚本管理** (`scripts/`) +- 部署脚本、启动脚本等工具脚本 +- 便于CI/CD集成 + +### 5. **参考资料** (`postman/`) +- Postman集合文件 +- 原始参考HTML文件 +- 便于API开发和调试 + +## 🛠️ 配置更新 + +### Netlify配置 (`netlify.toml`) +更新了路径重定向规则: +```toml +[[redirects]] + from = "/giffgaff" + to = "/src/giffgaff/giffgaff_complete_esim.html" + status = 200 + +[[redirects]] + from = "/simyo" + to = "/src/simyo/simyo_complete_esim.html" + status = 200 + +[[redirects]] + from = "/simyo-static" + to = "/src/simyo/simyo_static.html" + status = 200 +``` + +### CSP配置修复 +同时修复了Netlify配置中的CSP问题,添加了缺失的Giffgaff域名: +```toml +Content-Security-Policy = "connect-src 'self' ... https://id.giffgaff.com https://publicapi.giffgaff.com" +``` + +### 主README更新 +- 添加了完整的项目结构说明 +- 更新了所有文档路径引用 +- 更新了测试文件路径 + +## 🎯 重组目标 + +### 1. **可维护性提升** +- 清晰的文件分类 +- 便于查找和修改 +- 减少文件混乱 + +### 2. **开发效率** +- 逻辑分组的文件结构 +- 便于新功能开发 +- 简化部署流程 + +### 3. **文档管理** +- 分类明确的文档结构 +- 便于维护和更新 +- 提高文档可读性 + +### 4. **协作友好** +- 标准化的项目结构 +- 便于团队协作 +- 符合开源项目规范 + +## 🔄 迁移影响 + +### 对用户的影响 +- **无影响**: 所有URL路径保持不变 +- **向后兼容**: 原有链接继续有效 +- **功能完整**: 所有功能正常工作 + +### 对开发的影响 +- **路径更新**: 需要使用新的文件路径 +- **文档引用**: 更新内部文档链接 +- **测试路径**: 更新测试文件引用 + +## ✅ 验证清单 + +- [x] 所有文件成功移动到新位置 +- [x] Netlify重定向配置更新 +- [x] CSP配置修复 +- [x] README文档更新 +- [x] 文档路径引用更新 +- [x] 测试文件路径更新 +- [x] 项目结构文档创建 + +## 🚀 后续计划 + +1. **CI/CD优化**: 根据新结构优化自动化流程 +2. **文档完善**: 继续完善各类文档 +3. **测试增强**: 基于新结构改进测试覆盖 +4. **性能优化**: 利用清晰结构进行性能优化 + +--- + +**注意**: 此次重组不会影响用户体验,所有功能和URL保持不变。开发者需要根据新的文件路径进行后续开发。 \ No newline at end of file diff --git a/GIFFGAFF_CSP_CALLBACK_FIX.md b/docs/fixes/GIFFGAFF_CSP_CALLBACK_FIX.md similarity index 100% rename from GIFFGAFF_CSP_CALLBACK_FIX.md rename to docs/fixes/GIFFGAFF_CSP_CALLBACK_FIX.md diff --git a/GIFFGAFF_OAUTH_FIX.md b/docs/fixes/GIFFGAFF_OAUTH_FIX.md similarity index 100% rename from GIFFGAFF_OAUTH_FIX.md rename to docs/fixes/GIFFGAFF_OAUTH_FIX.md diff --git a/CORS_SOLUTION.md b/docs/guides/CORS_SOLUTION.md similarity index 100% rename from CORS_SOLUTION.md rename to docs/guides/CORS_SOLUTION.md diff --git a/DEPLOYMENT_GUIDE.md b/docs/guides/DEPLOYMENT_GUIDE.md similarity index 100% rename from DEPLOYMENT_GUIDE.md rename to docs/guides/DEPLOYMENT_GUIDE.md diff --git a/README_giffgaff_esim.md b/docs/reference/README_giffgaff_esim.md similarity index 100% rename from README_giffgaff_esim.md rename to docs/reference/README_giffgaff_esim.md diff --git a/README_simyo_esim.md b/docs/reference/README_simyo_esim.md similarity index 100% rename from README_simyo_esim.md rename to docs/reference/README_simyo_esim.md diff --git a/netlify.toml b/netlify.toml index 986faf5..196ed8a 100644 --- a/netlify.toml +++ b/netlify.toml @@ -8,19 +8,19 @@ [[redirects]] # Giffgaff eSIM页面 from = "/giffgaff" - to = "/giffgaff_complete_esim.html" + to = "/src/giffgaff/giffgaff_complete_esim.html" status = 200 [[redirects]] # Simyo eSIM页面(完整版本) from = "/simyo" - to = "/simyo_complete_esim.html" + to = "/src/simyo/simyo_complete_esim.html" status = 200 [[redirects]] # Simyo eSIM页面(静态版本) from = "/simyo-static" - to = "/simyo_static.html" + to = "/src/simyo/simyo_static.html" status = 200 [[redirects]] @@ -58,4 +58,4 @@ X-XSS-Protection = "1; mode=block" X-Content-Type-Options = "nosniff" Referrer-Policy = "strict-origin-when-cross-origin" - Content-Security-Policy = "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com; img-src 'self' data: https: http:; connect-src 'self' https://api.qrserver.com https://appapi.simyo.nl https://api.giffgaff.com; font-src 'self' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com;" \ No newline at end of file + Content-Security-Policy = "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com; img-src 'self' data: https: http:; connect-src 'self' https://api.qrserver.com https://appapi.simyo.nl https://api.giffgaff.com https://id.giffgaff.com https://publicapi.giffgaff.com; font-src 'self' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com;" \ No newline at end of file diff --git a/deploy.sh b/scripts/deploy.sh similarity index 100% rename from deploy.sh rename to scripts/deploy.sh diff --git a/start_simyo_server.bat b/scripts/start_simyo_server.bat similarity index 100% rename from start_simyo_server.bat rename to scripts/start_simyo_server.bat diff --git a/start_simyo_server.sh b/scripts/start_simyo_server.sh similarity index 100% rename from start_simyo_server.sh rename to scripts/start_simyo_server.sh diff --git a/giffgaff_complete_esim.html b/src/giffgaff/giffgaff_complete_esim.html similarity index 100% rename from giffgaff_complete_esim.html rename to src/giffgaff/giffgaff_complete_esim.html diff --git a/simyo_complete_esim.html b/src/simyo/simyo_complete_esim.html similarity index 100% rename from simyo_complete_esim.html rename to src/simyo/simyo_complete_esim.html diff --git a/simyo_proxy_server.js b/src/simyo/simyo_proxy_server.js similarity index 100% rename from simyo_proxy_server.js rename to src/simyo/simyo_proxy_server.js diff --git a/simyo_static.html b/src/simyo/simyo_static.html similarity index 100% rename from simyo_static.html rename to src/simyo/simyo_static.html diff --git a/test_giffgaff_esim.html b/tests/test_giffgaff_esim.html similarity index 100% rename from test_giffgaff_esim.html rename to tests/test_giffgaff_esim.html diff --git a/test_simyo_esim.html b/tests/test_simyo_esim.html similarity index 100% rename from test_simyo_esim.html rename to tests/test_simyo_esim.html