diff --git a/docs/guide/builder.md b/docs/guide/builder.md
index f352a77a..67d5fb86 100644
--- a/docs/guide/builder.md
+++ b/docs/guide/builder.md
@@ -20,3 +20,7 @@ Webpack 和 Vite 构建在配置方面有一些差异,具体可以查看[配
 ### html 模版
 
 html 模版比较常规的需求,例如模版变量,Webpack 和 Vite 之间没什么差异。如果有其他特殊的需求, Webpack 可以使用 [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin),Vite 使用[vite-plugin-html](https://github.com/vbenjs/vite-plugin-html) 进行个性化配置。
+
+::: tip
+fes3.0+ html 模版文件从 `public/index.html` 挪到项目根目录。
+:::
diff --git a/docs/guide/image.md b/docs/guide/image.md
index 3c5cb5f1..c33b91be 100644
--- a/docs/guide/image.md
+++ b/docs/guide/image.md
@@ -8,54 +8,54 @@
 
 ```vue
 <template>
-  <img src="@/images/logo.png`">
+    <img src="@/images/logo.png`" />
 </template>
 ```
 
 ### JS 里使用图片
+
 ```js
-import imageUrl from '@/images/logo.png`'
+import imageUrl from '@/images/logo.png`';
 ```
 
 ### CSS 里使用图片
+
 ```css
 .logo {
-    background: url('@/images/logo.png')
+    background: url('@/images/logo.png');
 }
 ```
+
 注意:
 
 1. 这是 `webpack` 的规则,如果切到其他打包工具,可能会有变化
 2. `less` 中同样适用
 
-
-## `public` 文件夹 
+## `public` 文件夹
 
 有些内容不需要经过 `webpack` 模块化处理,则可以将这些内容放在 `public` 文件夹,构建后会直接复制到 `dist` 目录,所以你需要通过`BASE_URL`来引入它们。
 
-### 在HTML模板中使用
+### 在 HTML 模板中使用
 
-
-在 `public/index.html` 中需要设置:
+在 `index.html` 中需要设置:
 
 ```html
-<link rel="icon" href="<%= BASE_URL %>favicon.ico">
+<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
 ```
 
 ### 在.vue 文件中使用
 
 ```vue
 <template>
-  <img :src="`${publicPath}my-image.png`">
+    <img :src="`${publicPath}my-image.png`" />
 </template>
 <script>
 export default {
-  setup() {
-    return {
-      publicPath: process.env.BASE_URL
-    }
-  }
-}
+    setup() {
+        return {
+            publicPath: process.env.BASE_URL,
+        };
+    },
+};
 </script>
 ```
-
diff --git a/docs/guide/public.md b/docs/guide/public.md
index 64717575..9ebd8d47 100644
--- a/docs/guide/public.md
+++ b/docs/guide/public.md
@@ -2,29 +2,27 @@
 
 有些内容不需要经过 `webpack` 模块化处理,则可以将这些内容放在 `public` 文件夹,构建后会直接复制到 `dist` 目录,所以你需要通过`BASE_URL`来引入它们。
 
-### 在HTML模板中使用
+### 在 HTML 模板中使用
 
-
-在 `public/index.html` 中需要设置:
+在 `index.html` 中需要设置:
 
 ```html
-<link rel="icon" href="<%= BASE_URL %>favicon.ico">
+<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
 ```
 
 ### 在.vue 和 js 文件中使用
 
 ```vue
 <template>
-  <img :src="`${publicPath}my-image.png`">
+    <img :src="`${publicPath}my-image.png`" />
 </template>
 <script>
 export default {
-  setup() {
-    return {
-      publicPath: process.env.BASE_URL
-    }
-  }
-}
+    setup() {
+        return {
+            publicPath: process.env.BASE_URL,
+        };
+    },
+};
 </script>
 ```
-
diff --git a/docs/guide/template.md b/docs/guide/template.md
index d03628a4..a4b163bd 100644
--- a/docs/guide/template.md
+++ b/docs/guide/template.md
@@ -2,6 +2,10 @@
 
 Fes.js 默认模板内容是:
 
+::: tip
+fes3.0+ html 模版文件从 `public/index.html` 挪到项目根目录。
+:::
+
 ```html
 <!DOCTYPE html>
 <html>
diff --git a/packages/fes-preset-built-in/types.d.ts b/packages/fes-preset-built-in/types.d.ts
index 76831b61..94172041 100644
--- a/packages/fes-preset-built-in/types.d.ts
+++ b/packages/fes-preset-built-in/types.d.ts
@@ -85,7 +85,7 @@ declare module "@fesjs/fes" {
         beforeRender?: (option: BeforeRenderConfig) => BeforeRenderConfig;
         patchRoutes?: ({ routes }: { routes: RouteRecordRaw[] }) => void;
         modifyClientRenderOpts?: (option: ClientRenderOption) => ClientRenderOption;
-        rootContainer?: (component: DefineComponent, option: { routes: RouteRecordRaw[], plugin: Plugin }) => DefineComponent;
+        rootContainer?: (component: DefineComponent, option: { routes: RouteRecordRaw[], plugin: Plugin }) => Component;
         onAppCreated?: ({ app, routes }: { app: App, routes: RouteRecordRaw[] }) => void;
         render?: (defaultRender: RenderFunc) => RenderFunc;
         onRouterCreated?: ({ router }: { router: Router }) => void;