# html自动部署 **Repository Path**: excelsiorly/html-automatic-deployment ## Basic Information - **Project Name**: html自动部署 - **Description**: 简易HTML自动部署服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HTML聚合网站后端服务 ## 项目概述 HTML聚合网站后端服务是一个基于Flask的Web应用,用于上传、管理和分享HTML文件。它支持自动处理外部资源,如CSS、JS、图片和字体文件,并将它们本地存储,确保HTML文件可以在离线环境下正常访问。 ## 功能特性 ### 1. 文件上传与管理 - 支持HTML文件上传 - 自定义访问路径 - 项目名称管理 - 文件编辑和删除 ### 2. 外部资源处理 - **CSS文件**:自动下载并本地存储 - **JavaScript文件**:自动下载并本地存储 - **图片文件**:自动下载并本地存储 - **字体文件**:支持多种字体格式(eot, woff2, woff, ttf, svg) - **相对路径处理**:自动转换相对路径为绝对URL ### 3. 局域网访问 - 自动获取本地IP地址 - 支持局域网内其他设备访问 - 生成可分享的访问链接 ### 4. 安全特性 - 支持自定义访问路径,避免冲突 - 文件扩展名验证 - 资源URL验证 - 错误处理和日志记录 ### 5. 用户体验 - 直观的Web界面 - 实时路径可用性检查 - 删除确认机制 - 友好的错误提示 ## 技术栈 - **后端框架**:Flask 2.x - **开发语言**:Python 3.6+ - **依赖管理**:pip - **数据存储**:本地文件系统 + JSON元数据 - **网络请求**:requests库 - **HTML解析**:正则表达式 ## 目录结构 ``` it-html/ ├── app.py # 主应用程序 ├── templates/ # HTML模板 │ ├── index.html # 首页模板 │ ├── upload.html # 上传/编辑模板 │ └── 404.html # 404错误模板 ├── uploads/ # 上传文件存储目录 │ └── [项目路径]/ # 每个项目的独立目录 │ ├── [main.html] # 主HTML文件 │ └── resources/ # 外部资源存储 ├── metadata.json # 项目元数据 ├── requirements.txt # 依赖列表 ├── README.md # 项目文档 └── DEPLOY.md # 部署文档 ``` ## 核心功能说明 ### 1. 资源处理流程 1. **上传HTML文件**:用户上传HTML文件,可选自定义路径 2. **解析外部资源**: - 查找HTML中的CSS、JS、图片引用 - 解析CSS文件中的字体引用 - 识别@font-face规则 3. **下载资源**:将外部资源下载到本地 4. **替换URL**:将HTML和CSS中的外部URL替换为本地路径 5. **保存文件**:保存处理后的HTML和资源文件 6. **记录元数据**:更新项目元数据 ### 2. 路径管理 - 支持自定义访问路径 - 实时检查路径可用性 - 支持路径修改和重命名 - 自动生成唯一路径(基于文件名和时间戳) ### 3. 资源类型支持 | 资源类型 | 支持格式 | 处理方式 | |---------|---------|---------| | CSS | .css | 下载并本地存储 | | JS | .js | 下载并本地存储 | | 图片 | .jpg, .jpeg, .png, .gif, .svg, .webp | 下载并本地存储 | | 字体 | .eot, .woff2, .woff, .ttf, .svg | 下载并本地存储 | ## API接口文档 ### 1. 上传文件 - **URL**: `/upload` - **方法**: POST - **参数**: - `file`: HTML文件 - `path`: 自定义访问路径(可选) - `project_name`: 项目名称(可选) - **返回**: JSON响应,包含访问URL和资源处理结果 ### 2. 编辑文件 - **URL**: `/edit/` - **方法**: POST - **参数**: - `action`: 操作类型(update/delete) - `path`: 新访问路径(可选) - `project_name`: 新项目名称(可选) - `file`: 新HTML文件(可选) - **返回**: JSON响应,包含操作结果 ### 3. 检查路径可用性 - **URL**: `/api/check-path` - **方法**: GET - **参数**: - `path`: 要检查的路径 - `exclude`: 要排除的路径(可选) - **返回**: JSON响应,包含路径可用性 ### 4. 获取服务器IP - **URL**: `/api/ip` - **方法**: GET - **返回**: JSON响应,包含服务器IP和URL ### 5. 获取文件列表 - **URL**: `/api/files` - **方法**: GET - **返回**: JSON响应,包含所有已上传文件信息 ### 6. 扫描资源 - **URL**: `/api/scan-resources/` - **方法**: GET - **返回**: JSON响应,包含HTML中的外部资源列表 ### 7. 上传资源 - **URL**: `/api/upload-resource/` - **方法**: POST - **参数**: - `file`: 资源文件 - `original_url`: 原始URL - `type`: 资源类型 - **返回**: JSON响应,包含上传结果 ## 配置说明 ### 1. 应用配置 | 配置项 | 默认值 | 说明 | |-------|-------|------| | UPLOAD_FOLDER | 'uploads' | 上传文件存储目录 | | METADATA_FILE | 'metadata.json' | 元数据存储文件 | | ALLOWED_EXTENSIONS | {'html', 'htm'} | 允许上传的文件扩展名 | | MAX_CONTENT_LENGTH | 50MB | 最大文件大小限制 | | PORT | 15555 | 服务器监听端口 | ### 2. 自定义配置 可以通过修改`app.py`文件中的配置项来自定义应用行为: ```python app.config['UPLOAD_FOLDER'] = 'custom_uploads' # 自定义上传目录 app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 # 100MB文件大小限制 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 启动应用 ```bash python app.py ``` ### 3. 访问应用 - 本地访问: http://localhost:15555 - 局域网访问: http://[本地IP]:15555 ## 开发说明 ### 1. 模板修改 所有HTML模板位于`templates/`目录下,可以根据需要修改模板内容和样式。 ### 2. 功能扩展 可以通过修改`app.py`文件来扩展应用功能,例如: - 添加新的资源类型支持 - 修改资源处理逻辑 - 添加新的API接口 - 修改存储方式 ### 3. 测试 可以使用以下方式测试应用: ```bash # 上传测试文件 python upload_test.py # 测试删除功能 python test_delete.py # 测试路径检查 python test_check_path.py ``` ## 注意事项 1. 确保应用有足够的权限访问上传目录 2. 定期备份`uploads/`目录和`metadata.json`文件 3. 建议在生产环境中使用WSGI服务器(如Gunicorn) 4. 注意文件大小限制,避免上传过大的文件 5. 定期清理不再使用的项目和资源文件 ## 许可证 MIT License ## 作者 HTML聚合网站开发团队 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持HTML文件上传和管理 - 支持CSS、JS、图片资源处理 - 支持自定义访问路径 ### v1.1.0 - 添加字体文件支持 - 修复删除功能问题 - 优化用户体验 - 添加路径检查API ### v1.2.0 - 修改默认端口为15555 - 完善错误处理 - 优化资源处理逻辑 - 添加详细的项目文档 ## 贡献 欢迎提交Issue和Pull Request!