From a41e69c38786dc016d04d95edbd331aeaa0ccfb6 Mon Sep 17 00:00:00 2001 From: mtvpls Date: Fri, 9 Jan 2026 21:53:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E8=B1=86=E7=93=A3=E5=8F=8D=E9=98=B2=E7=9B=97=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/api/image-proxy/route.ts | 1 + src/components/BannerCarousel.tsx | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/app/api/image-proxy/route.ts b/src/app/api/image-proxy/route.ts index 205bc8f..f3cb928 100644 --- a/src/app/api/image-proxy/route.ts +++ b/src/app/api/image-proxy/route.ts @@ -17,6 +17,7 @@ export async function GET(request: Request) { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36', Accept: 'image/jpeg,image/png,image/gif,*/*;q=0.8', + Referer: 'https://movie.douban.com/', }, }); diff --git a/src/components/BannerCarousel.tsx b/src/components/BannerCarousel.tsx index cdf2601..3efcdef 100644 --- a/src/components/BannerCarousel.tsx +++ b/src/components/BannerCarousel.tsx @@ -4,6 +4,7 @@ import { useEffect, useState, useCallback, useRef } from 'react'; import Image from 'next/image'; import { useRouter } from 'next/navigation'; import { getTMDBImageUrl, getGenreNames, type TMDBItem } from '@/lib/tmdb.client'; +import { processImageUrl } from '@/lib/utils'; import { ChevronLeft, ChevronRight, Play } from 'lucide-react'; interface BannerCarouselProps { @@ -48,14 +49,9 @@ export default function BannerCarousel({ autoPlayInterval = 5000 }: BannerCarous // 获取图片URL(处理TX完整URL和TMDB路径) const getImageUrl = (path: string | null) => { if (!path) return ''; - // 如果是完整URL(TX数据源或豆瓣),需要判断是否需要代理 + // 如果是完整URL(TX数据源或豆瓣),使用processImageUrl统一处理 if (path.startsWith('http://') || path.startsWith('https://')) { - // 豆瓣图片直接使用服务器代理 - if (path.includes('doubanio.com')) { - return `/api/image-proxy?url=${encodeURIComponent(path)}`; - } - // TX等其他完整URL直接返回 - return path; + return processImageUrl(path); } // 否则使用TMDB的URL拼接 return getTMDBImageUrl(path, 'original');