diff --git a/index.html b/index.html
index ca27987..7ae8e13 100644
--- a/index.html
+++ b/index.html
@@ -6,8 +6,8 @@
name="viewport"
content="initial-scale=1.0,maximum-scale=1,minimum-scale=1.0,user-scalable=no,width=device-width,viewport-fit=cover"
/>
-
-
+
+
Chat One Web
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 0000000..6386a6b
--- /dev/null
+++ b/nginx.conf
@@ -0,0 +1,32 @@
+server {
+ listen 80;
+ server_name _;
+
+ root /usr/share/nginx/html;
+ index index.html;
+
+ # Vite build 产物:文件名带 hash,可长期缓存
+ location /assets/ {
+ expires 1y;
+ add_header Cache-Control "public, max-age=31536000, immutable";
+ try_files $uri =404;
+ }
+
+ # 单独图标按中等缓存(如果后续也迁到 /assets,可删除)
+ location ~* ^/(favicon\.ico|favicon\.png|apple-touch-icon\.png)$ {
+ expires 7d;
+ add_header Cache-Control "public, max-age=604800";
+ try_files $uri =404;
+ }
+
+ # 入口 HTML 每次协商缓存,确保能拿到最新资源清单
+ location = /index.html {
+ add_header Cache-Control "no-cache";
+ try_files $uri =404;
+ }
+
+ # SPA 路由回退
+ location / {
+ try_files $uri $uri/ /index.html;
+ }
+}
diff --git a/public/apple-touch-icon.png b/src/assets/apple-touch-icon.png
similarity index 100%
rename from public/apple-touch-icon.png
rename to src/assets/apple-touch-icon.png
diff --git a/public/favicon.png b/src/assets/favicon.png
similarity index 100%
rename from public/favicon.png
rename to src/assets/favicon.png
diff --git a/public/logo.png b/src/assets/logo.png
similarity index 100%
rename from public/logo.png
rename to src/assets/logo.png
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index c22e7d1..b695226 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -38,6 +38,7 @@ import {
} from "antd";
import type { MenuProps } from "antd";
import { useNavigate, useParams } from "react-router-dom";
+import logoSrc from "../assets/logo.png";
import { ACCESS_TOKEN_KEY, SessionExpiredError, USER_KEY, logout } from "../api/auth";
import {
createChatSession,
@@ -97,6 +98,7 @@ const CONTEXT_WINDOW_SIZE = 8;
const DEEP_THINK_STORAGE_KEY = "chatone-deep-think-enabled";
const SMART_SEARCH_STORAGE_KEY = "chatone-smart-search-enabled";
const SELECTED_MODEL_STORAGE_KEY = "chatone-selected-model";
+const LOGO_SRC = logoSrc;
/** 展示名与请求 model 字段;需与后端实际支持的模型 id 一致 */
const DEFAULT_QWEN_MODEL = "qwen3.6-plus";
@@ -735,7 +737,7 @@ export default function HomePage() {