You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 14集成OneTrust路由块被拦截问题求助

解决OneTrust拦截Next.js 14 App Router路由块的问题

可以通过修改Next.js的Webpack配置,自动给所有Webpack生成的脚本块添加data-ot-ignore属性,绕过OneTrust的拦截。以下是具体实现方案:

全局Webpack配置方案

在项目根目录的next.config.js中添加Webpack自定义配置,重写脚本标签的生成逻辑:

/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config, { isServer }) => {
    // 仅处理客户端打包产物
    if (!isServer) {
      // 重写script标签模板,注入data-ot-ignore属性
      const originalScriptTagTemplate = config.output.scriptTagTemplate;
      config.output.scriptTagTemplate = (url, attributes) => {
        // 给所有自动生成的脚本标签添加忽略标记
        attributes['data-ot-ignore'] = '';
        return originalScriptTagTemplate(url, attributes);
      };
    }
    return config;
  },
};

module.exports = nextConfig;

工作原理

Webpack的scriptTagTemplate负责生成加载路由chunk的脚本标签,通过覆盖这个模板函数,我们可以在所有Webpack自动生成的脚本标签上强制添加data-ot-ignore属性,让OneTrust跳过对这些脚本的类型修改。

局部备选方案

如果不需要全局配置,也可以对特定路由的脚本手动使用next/script组件标记:

import Script from 'next/script';

export default function YourPage() {
  return (
    <>
      <Script
        src="/path/to/your/script.js"
        data-ot-ignore=""
        strategy="lazyOnload"
      />
      {/* 页面其他内容 */}
    </>
  );
}

这个方案适合只需要忽略特定脚本的场景,但需要逐个处理路由组件。


内容的提问来源于stack exchange,提问作者mesiaserwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:24:56