diff --git a/app/admin/community/page.tsx b/app/admin/community/page.tsx index 3eb8290..e78a129 100644 --- a/app/admin/community/page.tsx +++ b/app/admin/community/page.tsx @@ -12,7 +12,6 @@ */ import { useEffect, useState } from "react"; -import Image from "next/image"; import { AdminGuard } from "@/app/admin/events/AdminGuard"; import type { SharedLinkView } from "@/app/feed/types"; import { sanitizeExternalUrl } from "@/lib/url-safety"; @@ -130,16 +129,18 @@ function AdminCommunityInner() { key={link.id} className="border border-[var(--foreground)]/40 p-4 flex flex-col md:flex-row gap-4" > - {/* 左:OG 封面缩略图(没抓到就占位) */} + {/* 左:OG 封面缩略图(没抓到就占位)。 + 改用 + referrerPolicy="no-referrer":微信/知乎/小红书 + 图床防盗链会检查 Referer,非本站来源返回"未经允许"裂图。 + next/image 的 remotePatterns 限制外站域名也一并规避。 */}
{link.ogCover ? ( - {link.ogTitle ) : ( diff --git a/app/feed/components/LinkCard.tsx b/app/feed/components/LinkCard.tsx index 72749ee..7a71bcc 100644 --- a/app/feed/components/LinkCard.tsx +++ b/app/feed/components/LinkCard.tsx @@ -40,11 +40,15 @@ export function LinkCard({ link, categoryLabel, isLoggedIn }: LinkCardProps) { > {/* OG 封面 / 占位块 */} {link.ogCover && !link.ogFetchFailed ? ( - // next/image 全站 unoptimized:true,用 img 即可(与 events 页一致) + // next/image 全站 unoptimized:true,用 img 即可(与 events 页一致)。 + // referrerPolicy="no-referrer":微信 mmbiz.qpic.cn 防盗链会检查 Referer, + // 非 mp.weixin.qq.com 来源直接返回"未经允许使用"裂图;不发 Referer 时 + // 反而放行(微信客户端内打开文章浏览器也不发 Referer)。 // eslint-disable-next-line @next/next/no-img-element {link.ogTitle ) : (