diff --git a/src/App.js b/src/App.js
index 4a74de6..a9b0d85 100644
--- a/src/App.js
+++ b/src/App.js
@@ -16,7 +16,7 @@
 import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
 import MessagePage from './pages/MessagePage/MessagePage';
 import CreateMoment from './pages/FriendMoments/CreateMoment';
-import LevelPage from './pages/LevelPage/LevelPage';
+// import LevelPage from './pages/LevelPage/LevelPage';
 import NewbieTasks from './pages/UserCenter/NewbieTasks';
 import UserDynamics from './pages/UserCenter/UserDynamics';
 import UserFriends from './pages/UserCenter/UserFriends';
@@ -72,7 +72,7 @@
           <Route path="/seed/:id" component={({ id }) => <PrivateRoute component={() => <SeedDetail id={id} />} />} />
           <Route path="/interest-groups" component={() => <PrivateRoute component={InterestGroup} />} />
           <Route path="/messages" component={() => <PrivateRoute component={MessagePage} />} />
-          <Route path="/level" component={() => <PrivateRoute component={LevelPage} />} />
+          {/* <Route path="/level" component={() => <PrivateRoute component={LevelPage} />} /> */}
           <Route path="/information/:userId" component={({ userId }) => <PrivateRoute component={() => <UserInfo userId={userId} />} />} />
           <Route path="/new-user-guide" component={() => <PrivateRoute component={NewUserGuide} />} />
 
@@ -101,91 +101,4 @@
   );
 }
 
-export default App;
-
-
-// // export default App;
-
-// import { Route } from 'wouter';
-// import { Redirect } from 'wouter';
-// import AuthPage from './pages/AuthPage/AuthPage';
-// import HomePage from './pages/HomePage';
-// import FriendMoments from './pages/FriendMoments/FriendMoments';
-// import ForumPage from './pages/Forum/posts-main/ForumPage';
-// import SeedList from './pages/SeedList/SeedList';
-// import PostDetailPage from './pages/Forum/posts-detail/PostDetailPage';
-// import { UserProvider } from './context/UserContext';
-// import { GroupProvider } from './context/useGroupStore';
-// import PublishSeed from './pages/PublishSeed/PublishSeed';
-// import SeedDetail from './pages/SeedList/SeedDetail/SeedDetail';
-// import InterestGroup from './pages/InterestGroup/InterestGroup';
-// import UserProfile from './pages/UserCenter/UserProfile';
-// import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
-// import MessagePage from './pages/MessagePage/MessagePage';
-// import CreateMoment from './pages/FriendMoments/CreateMoment';
-// // import PromotionsPage from './pages/PromotionsPage/PromotionsPage';
-// import LevelPage from './pages/LevelPage/LevelPage';
-// import NewbieTasks from './pages/UserCenter/NewbieTasks';
-// import UserDynamics from './pages/UserCenter/UserDynamics';
-// import UserFriends from './pages/UserCenter/UserFriends';
-// import UserCollect from './pages/UserCenter/UserCollect';
-// import UserInvite from './pages/UserCenter/UserInvite';
-// import UserInfo from './pages/UserInfo/UserInfo';
-// import UserLayout from './pages/UserCenter/UserLayout';
-
-// function RedirectToAuth() {
-//   if (typeof window !== 'undefined') {
-//     window.location.replace('/auth');
-//   }
-//   return null;
-// }
-
-// function App() {
-//   return (
-//     <UserProvider>
-//       <GroupProvider>
-//         <>
-//           <Route path="/" component={RedirectToAuth} />
-//           <Route path="/auth" component={AuthPage} />
-//           <Route path="/friend-moments" component={FriendMoments} />
-//           <Route path="/friend-moments/create" component={CreateMoment} />
-//           <Route path="/forum" component={ForumPage} />
-//           <Route path="/forum/post/:postId" component={PostDetailPage} />
-//           <Route path="/forum/create-post" component={CreatePostPage} />
-//           <Route path="/seed-list" component={SeedList} />
-//           <Route path="/publish-seed" component={PublishSeed} />
-//           {/* <Route path="/publish-seed" component={SimpleUploader} /> */}
-//           <Route path="/seed/:id" component={SeedDetail} />
-//           <Route path="/interest-groups" component={InterestGroup} />
-//           <Route path="/messages" component={MessagePage} />
-//           {/* <Route path="/promotions" component={PromotionsPage} /> */}
-//           <Route path="/level" component={LevelPage} />
-//           <Route path="/information/:userId" component={UserInfo} />
-
-
-//           {/* 用户中心嵌套路由模拟 */}
-//           <Route path="/user/profile" component={() => (
-//             <UserLayout><UserProfile /></UserLayout>
-//           )} />
-//           <Route path="/user/newbie-tasks" component={() => (
-//             <UserLayout><NewbieTasks /></UserLayout>
-//           )} />
-//           <Route path="/user/dynamics" component={() => (
-//             <UserLayout><UserDynamics /></UserLayout>
-//           )} />
-//           <Route path="/user/friends" component={() => (
-//             <UserLayout><UserFriends /></UserLayout>
-//           )} />
-//           <Route path="/user/collections" component={() => (
-//             <UserLayout><UserCollect /></UserLayout>
-//           )} />
-//           <Route path="/user/invite" component={() => (
-//             <UserLayout><UserInvite /></UserLayout>
-//           )} />
-//         </>
-//       </GroupProvider>
-//     </UserProvider>
-//   );
-// }
-
-// export default App;
+export default App;
\ No newline at end of file
