diff --git a/src/pages/Forum/posts-detail/PostDetailPage.jsx b/src/pages/Forum/posts-detail/PostDetailPage.jsx
index f703fd6..2e4874a 100644
--- a/src/pages/Forum/posts-detail/PostDetailPage.jsx
+++ b/src/pages/Forum/posts-detail/PostDetailPage.jsx
@@ -14,11 +14,11 @@
   // 如果是 /images/... ，替换成 /uploads/post/...
   if (url.startsWith('/images/')) {
     // 这里把 /images/ 替换成 /uploads/post/
-    return `http://localhost:8080/uploads/post/${url.slice('/images/'.length)}`;
+    return `http://localhost:5011/uploads/post/${url.slice('/images/'.length)}`;
   }
 
   // 其它情况默认直接拼接，不加斜杠
-  return `http://localhost:8080${url.startsWith('/') ? '' : '/'}${url}`;
+  return `http://localhost:5011${url.startsWith('/') ? '' : '/'}${url}`;
 };
 
 
@@ -26,7 +26,7 @@
 export function formatAvatarUrlNoDefault(avatarUrl) {
   if (!avatarUrl) return '';
   if (avatarUrl.startsWith('http')) return avatarUrl;
-  return `http://localhost:8080${avatarUrl}`;
+  return `http://localhost:5011${avatarUrl}`;
 }
 
 const PostDetailPage = () => {
diff --git a/src/pages/Forum/posts-main/components/PostList.jsx b/src/pages/Forum/posts-main/components/PostList.jsx
index f152c87..5d14fdd 100644
--- a/src/pages/Forum/posts-main/components/PostList.jsx
+++ b/src/pages/Forum/posts-main/components/PostList.jsx
@@ -10,7 +10,7 @@
 const formatImageUrl = (url) => {
   if (!url) return '';
   const filename = url.split('/').pop(); // 提取文件名部分
-  return `http://localhost:8080/uploads/post/${filename}`;
+  return `http://localhost:5011/uploads/post/${filename}`;
 };
 
 const PostList = ({ search }) => {
diff --git a/src/pages/FriendMoments/FriendMoments.jsx b/src/pages/FriendMoments/FriendMoments.jsx
index 9595b8b..c642772 100644
--- a/src/pages/FriendMoments/FriendMoments.jsx
+++ b/src/pages/FriendMoments/FriendMoments.jsx
@@ -9,7 +9,7 @@
 const formatImageUrl = (url) => {
   if (!url) return '';
   const filename = url.split('/').pop(); // 提取文件名部分
-  return `http://localhost:8080/uploads/post/${filename}`;
+  return `http://localhost:5011/uploads/dynamic/${filename}`;
 };
 
 const FriendMoments = () => {
diff --git a/src/pages/SeedList/SeedDetail/SeedDetail.jsx b/src/pages/SeedList/SeedDetail/SeedDetail.jsx
index 10cf65d..16c6d01 100644
--- a/src/pages/SeedList/SeedDetail/SeedDetail.jsx
+++ b/src/pages/SeedList/SeedDetail/SeedDetail.jsx
@@ -23,7 +23,7 @@
   const formatImageUrl = (url) => {
     if (!url) return '';
     const filename = url.split('/').pop();
-    return `http://localhost:8080/uploads/torrents/${filename}`;
+    return `http://localhost:5011/uploads/torrents/${filename}`;
   };
 
   useEffect(() => {
diff --git a/src/pages/SeedList/SeedList.css b/src/pages/SeedList/SeedList.css
index f53a9a3..cf5502c 100644
--- a/src/pages/SeedList/SeedList.css
+++ b/src/pages/SeedList/SeedList.css
@@ -1,235 +1,234 @@
-      
-      .seed-list-container {
-        background: #333;
-      }
-      
-      /* 搜索、排序控件 */
-      .controls {
-        display: flex;
-        justify-content: center;
-        gap: 16px;
-        padding: 10px 20px;
-        background-color: #5F4437;
-      }
-      
-      .search-input {
-        padding: 6px 10px;
-        border-radius: 6px;
-        border: none;
-        width: 200px;
-      }
-      
-      .sort-select {
-        padding: 6px;
-        border-radius: 6px;
-        border: none;
-      }
-      
-      /* 标签过滤 */
-      .tag-filters {
-        background-color: #5F4437;
-        display: flex;
-        justify-content: center;
-        flex-wrap: wrap;
-        gap: 8px;
-        padding: 10px;
-      }
-      
-      .tag-button {
-        background-color: #b38867;
-        color: white;
-        border: none;
-        border-radius: 20px;
-        padding: 6px 12px;
-        cursor: pointer;
-      }
-      
-      .active-tag {
-        background-color: #d17c4f;
-      }
-      
-      .clear-filter-btn {
-        background: transparent;
-        border: none;
-        color: #888;
-        font-size: 1rem;
-        cursor: pointer;
-        margin-left: 4px;
-      }
-      
-      /* 去除 Link 组件默认的下划线和文字颜色变化 */
-      .seed-item-link {
-        text-decoration: none;
-        color: inherit;
-        display: block; /* 确保整个卡片可点击 */
-      }
-      
-      .clear-filter-btn:hover {
-        color: red;
-      }
-      
-      /* 卡片展示 */
-      .seed-list-content {
-        padding: 20px;
-        background-color: #5F4437;
-      }
-      
-      .seed-list-card {
-        background-color: #e9ded2;
-        color: #333;
-        border-radius: 8px;
-        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
-        overflow: hidden;
-      }
-      
-      .seed-list-header {
-        display: grid;
-        grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
-        align-items: center;
-        justify-items: center; /* 新增：水平居中 */
-        padding: 12px 16px;
-        background-color: #BA929A;
-        font-weight: bold;
-      }
-      
-      .seed-list-body {
-        display: flex;
-        flex-direction: column;
-      }
-      
-      .seed-item {
-        display: grid;
-        grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
-        align-items: center;
-        justify-items: center; /* 新增：水平居中 */
-        padding: 12px 16px;
-        border-top: 1px solid #ccc;
-      }
-      
-      .seed-item-cover {
-        margin-left: -50px;
-        width: 100px;
-        height: 140px;
-        object-fit: cover;
-        border-radius: 6px;
-        flex-shrink: 0;
-      }
-      
-      .seed-item-title {
-        width: 100%;
-        margin-left: -100px;
-        text-align: center; 
-      }
-      
-      .seed-title-row {
-        display: flex;
-        flex-direction: column;
-        align-items: center; /* 新增：垂直居中 */
-        gap: 8px;
-      }
-      
-      .seed-title {
-        font-size: 1.1rem;
-        margin: 0;
-        font-weight: bold;
-      }
-      
-      .seed-tags {
-        margin-top: 4px;
-        display: flex;
-        flex-wrap: wrap;
-        gap: 4px;
-        justify-content: center; /* 标签水平居中 */
-        max-width: 100%;         /* 限制最大宽度以触发换行 */
-        word-break: break-word;  /* 避免长标签溢出 */
-      }
-      
-      
-      .seed-item-actions {
-        display: flex;
-        flex-direction: row;
-        gap: 8px;
-        justify-content: center; /* 新增：操作按钮水平居中 */
-      }
-      
-      .seed-header-cover {
-        width: 180px;
-        flex-shrink: 0;
-        text-align: center; 
-      }
-      
-      .seed-header-title {
-        margin-left: -100px;
-      }
+.seed-list-container {
+  background: #333;
+}
 
-      .seed-header-size,
-      .seed-header-upload-time,
-      .seed-header-downloads,
-      .seed-header-actions {
-        text-align: center; /* 新增：文字居中 */
-      }
-      
-      .seed-info {
-        display: flex;
-        justify-content: space-between;
-        font-size: 0.9rem;
-        color: #666;
-        margin-bottom: 8px;
-      }
-      
-      .tag-label {
-        background-color: #eee;
-        border-radius: 4px;
-        padding: 2px 6px;
-        font-size: 12px;
-      }
-      
-      .btn-primary,
-      .btn-secondary,
-      .btn-outline {
-        padding: 6px 12px;
-        border: none;
-        border-radius: 6px;
-        cursor: pointer;
-        font-size: 0.9rem;
-        text-align: center;
-        white-space: nowrap;
-        transition: background-color 0.2s ease;
-      }
-      
-      .btn-primary {
-        background-color: #007bff;
-        color: white;
-      }
-      
-      .btn-primary:hover {
-        background-color: #0056b3;
-      }
-      
-      .btn-secondary {
-        background-color: #28a745;
-        color: white;
-      }
-      
-      .btn-secondary:hover {
-        background-color: #218838;
-      }
-      
-      .btn-outline {
-        background-color: transparent;
-        border: 1px solid #ccc;
-        color: #333;
-      }
-      
-      .btn-outline:hover {
-        background-color: #f8f9fa;
-      }
-      .seed-cover {
-        width: 100%;
-        height: 180px;
-        object-fit: cover;
-        border-radius: 8px;
-        margin-bottom: 12px;
-      }
+/* 搜索、排序控件 */
+.controls {
+  display: flex;
+  justify-content: center;
+  gap: 16px;
+  padding: 10px 20px;
+  background-color: #5F4437;
+}
 
-          
\ No newline at end of file
+.search-input {
+  padding: 6px 10px;
+  border-radius: 6px;
+  border: none;
+  width: 200px;
+}
+
+.sort-select {
+  padding: 6px;
+  border-radius: 6px;
+  border: none;
+}
+
+/* 标签过滤 */
+.tag-filters {
+  background-color: #5F4437;
+  display: flex;
+  justify-content: center;
+  flex-wrap: wrap;
+  gap: 8px;
+  padding: 10px;
+}
+
+.tag-button {
+  background-color: #b38867;
+  color: white;
+  border: none;
+  border-radius: 20px;
+  padding: 6px 12px;
+  cursor: pointer;
+}
+
+.active-tag {
+  background-color: #d17c4f;
+}
+
+.clear-filter-btn {
+  background: transparent;
+  border: none;
+  color: #888;
+  font-size: 1rem;
+  cursor: pointer;
+  margin-left: 4px;
+}
+
+.clear-filter-btn:hover {
+  color: red;
+}
+
+/* 去除 Link 组件默认的下划线和文字颜色变化 */
+.seed-item-link {
+  text-decoration: none;
+  color: inherit;
+  display: block;
+}
+
+/* 卡片展示 */
+.seed-list-content {
+  padding: 20px;
+  background-color: #5F4437;
+}
+
+.seed-list-card {
+  background-color: #e9ded2;
+  color: #333;
+  border-radius: 8px;
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
+  overflow: hidden;
+}
+
+.seed-list-header {
+  display: grid;
+  grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
+  align-items: center;
+  justify-items: center;
+  padding: 12px 16px;
+  background-color: #BA929A;
+  font-weight: bold;
+}
+
+.seed-list-body {
+  display: flex;
+  flex-direction: column;
+}
+
+.seed-item {
+  display: grid;
+  grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
+  align-items: center;
+  justify-items: center;
+  padding: 12px 16px;
+  border-top: 1px solid #ccc;
+}
+
+.seed-item-cover {
+  width: 100px;
+  height: 140px;
+  object-fit: cover;
+  border-radius: 6px;
+  flex-shrink: 0;
+}
+
+.seed-item-title {
+  width: 100%;
+  text-align: center;
+}
+
+.seed-title-row {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: 8px;
+}
+
+.seed-title {
+  font-size: 1.1rem;
+  margin: 0;
+  font-weight: bold;
+}
+
+.seed-tags {
+  margin-top: 4px;
+  display: flex;
+  flex-wrap: wrap;
+  gap: 4px;
+  justify-content: center;
+  max-width: 100%;
+  word-break: break-word;
+}
+
+.seed-item-actions {
+  display: flex;
+  flex-direction: row;
+  gap: 8px;
+  justify-content: center;
+}
+
+.seed-header-cover {
+  width: 180px;
+  flex-shrink: 0;
+  text-align: center;
+}
+
+.seed-header-title,
+.seed-header-size,
+.seed-header-upload-time,
+.seed-header-downloads,
+.seed-header-actions {
+  text-align: center;
+}
+
+.seed-info {
+  display: flex;
+  justify-content: space-between;
+  font-size: 0.9rem;
+  color: #666;
+  margin-bottom: 8px;
+}
+
+.tag-label {
+  background-color: #eee;
+  border-radius: 4px;
+  padding: 2px 6px;
+  font-size: 12px;
+}
+
+.btn-primary,
+.btn-secondary,
+.btn-outline {
+  padding: 6px 12px;
+  border: none;
+  border-radius: 6px;
+  cursor: pointer;
+  font-size: 0.9rem;
+  text-align: center;
+  white-space: nowrap;
+  transition: background-color 0.2s ease;
+}
+
+.btn-primary {
+  background-color: #007bff;
+  color: white;
+}
+
+.btn-primary:hover {
+  background-color: #0056b3;
+}
+
+.btn-secondary {
+  background-color: #28a745;
+  color: white;
+}
+
+.btn-secondary:hover {
+  background-color: #218838;
+}
+
+.btn-outline {
+  background-color: transparent;
+  border: 1px solid #ccc;
+  color: #333;
+}
+
+.btn-outline:hover {
+  background-color: #f8f9fa;
+}
+
+.seed-cover {
+  width: 100%;
+  height: 180px;
+  object-fit: cover;
+  border-radius: 8px;
+  margin-bottom: 12px;
+}
+.seed-item-cover {
+    width: 100px;
+    height: auto;
+    object-fit: cover;
+    border-radius: 4px;
+    margin-right: 12px;
+}
diff --git a/src/pages/SeedList/SeedList.jsx b/src/pages/SeedList/SeedList.jsx
index be8d13f..a010840 100644
--- a/src/pages/SeedList/SeedList.jsx
+++ b/src/pages/SeedList/SeedList.jsx
@@ -72,7 +72,8 @@
         setErrorMsg('');
         try {
             const params = buildQueryParams();
-            const response = await axios.post('/seeds/list', params);
+            const response = await axios.get('/seeds/list', params);
+            // const response = await axios.get('/seeds/list', { params });
             const data = response.data;
 
             if (data.code !== 0) {
@@ -275,13 +276,14 @@
                                     
                                    <Link to={`/seed/${seed.id}`} key={index} className="seed-item-link">
                                         <div className="seed-item">
-                                            {seed.image_url && (
+                                            {seed.imageUrl && (
                                                 <img
-                                                    src={seed.image_url}
+                                                    src={seed.imageUrl}
                                                     alt={seed.title}
                                                     className="seed-item-cover"
                                                 />
                                             )}
+
                                             <div className="seed-item-title">
                                                 <div className="seed-title-row">
                                                     <h3 className="seed-title">{seed.title}</h3>
