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

Next.js使用deufakt i18n时关闭/blog路由本地化及构建报错求助

为/blog路由关闭deufakt i18n本地化的解决方案
  • 首选配置重定向规则,直接在next.config.js中添加如下配置,所有带语言前缀的博客路径会自动301跳转到无前缀路径:
module.exports = {
  // 其余原有配置保留
  async redirects() {
    return [
      {
        source: '/:lang(你支持的所有语言码用|分隔,比如en|es|fr)/blog/:path*',
        destination: '/blog/:path*',
        permanent: true,
      },
    ]
  },
}
  • 同时在deufakt i18n的配置文件中添加路由排除规则,避免插件处理博客路径:找到插件配置项中的excludeRoutes数组,加入'/blog'和'/blog/**'即可。
构建阶段post为undefined的报错解决方案

本地开发正常但构建报错,核心原因是构建阶段的接口请求逻辑和开发环境不一致,可按以下步骤排查修复:

  1. 添加兜底判断避免直接报错
    你当前的逻辑中如果pageData为空会返回空props,组件直接访问post.metadata必然触发报错,先修改组件代码添加兜底:
const BlogPage = ({ post, allPosts }) => {
  const router = useRouter();
  if (router.isFallback) {
    return <div className="container">Loading...</div>;
  }
  // 新增post不存在时返回404
  if (!post) {
    return <ErrorPage statusCode={404} />
  }
  return (
    <>
      <Seo metadata={post.metadata} />
      <BlogPost {...{ post, allPosts }} />
    </>
  );
};
  1. 排查构建环境接口请求问题
  • 确认构建环境的环境变量配置正确,getStrapiURL返回的是Strapi服务的公网可访问地址,不要用localhost或者内网IP,避免构建机无法访问接口。
  • 在getStaticProps中添加日志打印,构建时查看接口请求参数和返回值,确认是否存在请求失败、返回空数据的问题:
export async function getStaticProps({ params, preview = null }) {
  console.log('当前请求slug:', params.slug)
  console.log('请求接口地址:', getStrapiURL(`/blog-posts?slug=${params.slug}`))
  const pageData = await getBlogPost(params.slug);
  console.log('接口返回内容:', pageData)
  // 其余原有逻辑保留
}
  1. 排除i18n参数影响
    deufakt i18n默认会给getStaticProps传入locale参数,确认你的getBlogPost方法是否按locale过滤了内容,如果是,修改该方法,博客相关请求忽略locale参数,或者默认请求全量/默认语言的内容。
    同时修改getStaticPaths中的接口请求,添加参数强制返回所有语言的博客slug,避免构建阶段生成路径不全:
export async function getStaticPaths() {
  // 示例:Strapi请求添加_locale=all返回全量数据,具体参数按你所用的Strapi版本调整
  const blogPosts = await (await fetch(getStrapiURL("/blog-posts?_locale=all"))).json();
  const paths = blogPosts.map((page) => {
    return {
      params: { slug: page.slug },
    };
  });
  return { paths, fallback: true };
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:54:03