diff --git a/src/pages/SeedList/Recommend/Recommend.jsx b/src/pages/SeedList/Recommend/Recommend.jsx
index 97e702b..dd38184 100644
--- a/src/pages/SeedList/Recommend/Recommend.jsx
+++ b/src/pages/SeedList/Recommend/Recommend.jsx
@@ -9,8 +9,8 @@
   useEffect(() => {
     const fetchPaidLists = async () => {
       try {
-        const API_BASE = process.env.REACT_APP_API_BASE;
-        const response = await fetch(`${API_BASE}/echo/recommendations/paid?user_id=1`);
+        
+        const response = await fetch(`/echo/recommendations/paid?user_id=1`);
         console.log('请求地址:', `${process.env.REACT_APP_API_BASE}/echo/recommendations/paid?user_id=1`);
 
 
diff --git a/src/pages/SeedList/SeedDetail/SeedDetail.jsx b/src/pages/SeedList/SeedDetail/SeedDetail.jsx
index b99fcc5..0a3ba4d 100644
--- a/src/pages/SeedList/SeedDetail/SeedDetail.jsx
+++ b/src/pages/SeedList/SeedDetail/SeedDetail.jsx
@@ -4,7 +4,7 @@
 import Header from '../../../components/Header';
 import './SeedDetail.css';
 
-const API_BASE = process.env.REACT_APP_API_BASE;
+
 
 const SeedDetail = () => {
     const { seed_id } = useParams();
@@ -15,7 +15,7 @@
 
     useEffect(() => {
         axios
-           .get(`${API_BASE}/echo/seeds/${seed_id}`)
+           .get(`/echo/seeds/${seed_id}`)
            .then((res) => {
                 if (res.data.status === 'success') {
                     setSeed(res.data.seed);
@@ -28,7 +28,7 @@
             });
 
         // 模拟获取评论数据，实际需要调用 API
-        axios.get(`${API_BASE}/echo/seeds/${seed_id}/comments`)
+        axios.get(`/echo/seeds/${seed_id}/comments`)
            .then((res) => {
                 if (res.data.status === 'success') {
                     setComments(res.data.comments);
@@ -49,7 +49,7 @@
             const left = 0;
 
             try {
-                const response = await axios.get(`${API_BASE}/echo/seeds/${seed.seed_id}/download`, {
+                const response = await axios.get(`/echo/seeds/${seed.seed_id}/download`, {
                     params: { peer_id, ip, port, uploaded, downloaded, left },
                     responseType: 'blob'
                 });
diff --git a/src/pages/SeedList/SeedList.jsx b/src/pages/SeedList/SeedList.jsx
index 09ea5dd..eade11d 100644
--- a/src/pages/SeedList/SeedList.jsx
+++ b/src/pages/SeedList/SeedList.jsx
@@ -6,7 +6,7 @@
 import Header from '../../components/Header';  // 引入 Header 组件
 import './SeedList.css';
 
-const API_BASE = process.env.REACT_APP_API_BASE;
+
 
 const SeedList = () => {
     const [seeds, setSeeds] = useState([]);
@@ -66,7 +66,7 @@
         try {
             const params = buildQueryParams();
             const queryString = new URLSearchParams(params).toString();
-            const response = await fetch(`${API_BASE}/echo/seeds?${queryString}`);
+            const response = await fetch(`/echo/seeds?${queryString}`);
             const data = await response.json();
 
             if (data.status!== 'success') throw new Error(data.message || '获取失败');
@@ -87,7 +87,7 @@
         if (activeTab === '猜你喜欢') return;
         const category = CATEGORY_MAP[activeTab];
         try {
-            const res = await axios.get(`${API_BASE}/echo/seed-filters?category=${category}`);
+            const res = await axios.get(`/echo/seed-filters?category=${category}`);
             const filterData = res.data || {};
             setFilters(filterData);
 
@@ -124,7 +124,7 @@
         const left = 0;
 
         try {
-            const response = await axios.get(`${API_BASE}/echo/seeds/${seedId}/download`, {
+            const response = await axios.get(`/echo/seeds/${seedId}/download`, {
                 params: { peer_id, ip, port, uploaded, downloaded, left },
                 responseType: 'blob'
             });
