如何在NextJS特定页面移除rel="amphtml"标签
NextJS 基于URL移除特定页面的rel="amphtml"标签
你的需求是在体育类非AMP文章页面移除rel="amphtml"标签,其他分类页面保留。现有代码仅通过isAmp判断,缺少页面分类的区分逻辑,需要补充URL/分类的判断条件:
解决方案
- 先判断当前页面是否为体育类页面(可通过URL路径或页面数据判断)
- 修改渲染条件:仅当非AMP页面且非体育类页面时,才渲染
amphtml标签
示例代码(基于URL路径判断)
import { useRouter } from 'next/router'; // 获取当前页面路径 const router = useRouter(); const { asPath: asPathURL } = router; // 判断是否为体育类页面(假设URL包含/sports/) const isSportsPage = asPathURL.includes('/sports/'); // 渲染逻辑 {!isAmp && !isSportsPage && ( <link rel="amphtml" href={`${DomainName}${asPathURL}lite/`} /> )}
补充说明
- 如果分类信息来自文章数据(比如接口返回的
category字段),可直接用数据判断:article.category !== 'sports' - 确保
DomainName和asPathURL能正确拼接出AMP页面的完整地址
内容的提问来源于stack exchange,提问作者Narendra Sishodiya
相关产品推荐
相关产品推荐

