diff --git a/README.md b/README.md
index 04ee571..70784a6 100644
--- a/README.md
+++ b/README.md
@@ -52,14 +52,39 @@ OLLAMA_ORIGINS="*" ollama serve
```
metona-ollama/
-├── index.html # 主页面 + 应用逻辑
-├── style.css # 暗色主题样式
-├── ollama-api.js # Ollama REST API 封装
-├── chat-db.js # IndexedDB 持久化层
-├── marked.esm.js # Markdown 渲染器
-├── sw.js # Service Worker (PWA)
-├── manifest.json # PWA 清单
-└── README.md
+├── index.html # 入口页面(纯模板)
+├── manifest.json # PWA 清单
+├── sw.js # Service Worker (PWA)
+├── LICENSE
+├── README.md
+│
+├── assets/
+│ └── icons/ # 图标资源
+│ ├── llama.ico
+│ └── llama.png
+│
+├── css/
+│ └── style.css # 暗色主题样式
+│
+└── js/
+ ├── app.js # 主入口 / 初始化协调
+ ├── ollama-api.js # Ollama REST API 封装
+ ├── chat-db.js # IndexedDB 持久化层
+ ├── state.js # 响应式状态管理
+ ├── utils.js # 通用工具函数
+ ├── sanitizer.js # HTML XSS 净化器
+ ├── marked-config.js # Markdown 渲染器配置
+ ├── lib/
+ │ └── marked.esm.js # Markdown 渲染器(第三方)
+ └── components/
+ ├── chat-area.js # 消息渲染 / 流式更新 / 导出
+ ├── input-area.js # 文本输入 / 图片上传 / 发送
+ ├── history-modal.js # 历史记录面板 / 搜索 / 分页
+ ├── settings-modal.js # 设置面板 / 数据管理
+ ├── header.js # 顶部导航 / 连接状态
+ ├── model-bar.js # 模型选择栏
+ ├── toast.js # Toast 通知
+ └── lightbox.js # 图片预览
```
## ⚙️ 设置项
diff --git a/llama.ico b/assets/icons/llama.ico
similarity index 100%
rename from llama.ico
rename to assets/icons/llama.ico
diff --git a/llama.png b/assets/icons/llama.png
similarity index 100%
rename from llama.png
rename to assets/icons/llama.png
diff --git a/style.css b/css/style.css
similarity index 100%
rename from style.css
rename to css/style.css
diff --git a/index.html b/index.html
index a26c296..ab7e297 100644
--- a/index.html
+++ b/index.html
@@ -8,9 +8,9 @@
-
+
Metona Ollama
-
+
diff --git a/js/app.js b/js/app.js
index 1a62e8f..d1f025c 100644
--- a/js/app.js
+++ b/js/app.js
@@ -3,8 +3,8 @@
* 负责初始化所有组件、协调事件流、管理生命周期
*/
-import { ChatDB } from '../chat-db.js';
-import { OllamaAPI } from '../ollama-api.js';
+import { ChatDB } from './chat-db.js';
+import { OllamaAPI } from './ollama-api.js';
import { state, KEYS } from './state.js';
import { generateId } from './utils.js';
diff --git a/chat-db.js b/js/chat-db.js
similarity index 100%
rename from chat-db.js
rename to js/chat-db.js
diff --git a/js/components/header.js b/js/components/header.js
index c00ed3a..d4da936 100644
--- a/js/components/header.js
+++ b/js/components/header.js
@@ -5,7 +5,7 @@
import { state, KEYS } from '../state.js';
import { formatSize } from '../utils.js';
-import { OllamaAPI } from '../../ollama-api.js';
+import { OllamaAPI } from '../ollama-api.js';
let connStatusEl;
diff --git a/js/components/settings-modal.js b/js/components/settings-modal.js
index 76aaa21..c94139a 100644
--- a/js/components/settings-modal.js
+++ b/js/components/settings-modal.js
@@ -7,7 +7,7 @@ import { debounce, formatSize } from '../utils.js';
import { updateConnectionInfo, updateRunningModels } from './header.js';
import { loadModels } from './model-bar.js';
import { showToast } from './toast.js';
-import { OllamaAPI } from '../../ollama-api.js';
+import { OllamaAPI } from '../ollama-api.js';
let settingsModalEl;
diff --git a/marked.esm.js b/js/lib/marked.esm.js
similarity index 100%
rename from marked.esm.js
rename to js/lib/marked.esm.js
diff --git a/js/marked-config.js b/js/marked-config.js
index 145fe71..46f500d 100644
--- a/js/marked-config.js
+++ b/js/marked-config.js
@@ -3,7 +3,7 @@
* 封装 marked.js,配置自定义渲染器和安全策略
*/
-import { marked } from '../marked.esm.js';
+import { marked } from './lib/marked.esm.js';
import { SAFE_URI_SCHEMES } from './sanitizer.js';
// 配置 marked
diff --git a/ollama-api.js b/js/ollama-api.js
similarity index 100%
rename from ollama-api.js
rename to js/ollama-api.js
diff --git a/sw.js b/sw.js
index ae8682d..67b4fab 100644
--- a/sw.js
+++ b/sw.js
@@ -7,10 +7,10 @@ const CACHE_NAME = 'metona-ollama-v3';
const ASSETS = [
'./',
'./index.html',
- './style.css',
- './chat-db.js',
- './marked.esm.js',
- './ollama-api.js',
+ './css/style.css',
+ './js/chat-db.js',
+ './js/lib/marked.esm.js',
+ './js/ollama-api.js',
'./manifest.json'
];