0

我有两个 Nextjs 应用程序:

1_ webapp - 混合

2_ 博客 - 静态(与下一次导出一起导出)

它们是单独部署的。

我想将 webapp 链接到外部博客应用程序。当用户在 webapp 中点击“博客”时,应该会登陆博客静态应用。为此,我正在尝试使用 Nextjs rewrites

在我的 webapp 中,next.config.js我这样做:


      async rewrites() {
        return [
          {
            source: '/blog',
            destination: 'https://myblog.azurestaticapps.net/blog',
          },
        ]
      },

然后在next.config.js我的博客应用程序中:


    const baseUrl = '/blog';
    
    module.exports = withBundleAnalyzer({
      poweredByHeader: false,
      trailingSlash: true,
      basePath: baseUrl,
      assetPrefix: baseUrl,
    });

问题是:

  • 当我在 azure static web 应用程序上部署博客应用程序时,index.html(我的博客应用程序的主页)可以在下面https://myblog.azurestaticapps.net而不是下面访问,https://myblog.azurestaticapps.net/blog这意味着没有加载 css 和 js

blog-app/index.html中的js请求示例:/blog/_next/static/chunks/main-d3b8bc8211fdf94f30b0.js

可以在这里看看:https ://purple-coast-094447810.azurestaticapps.net/

exportPathMap在 Nextjs 中阅读并尝试使用它,但在我的构建文件夹中我得到了

  • index.html在我的根文件夹中
  • /blog我的根目录中的文件夹是空的。里面根本没有文件。我就是这样使用它的:

    module.exports = withBundleAnalyzer({
      poweredByHeader: false,
      trailingSlash: true,
      basePath: baseUrl,
      assetPrefix: baseUrl,
      env: {
        baseUrl: baseUrl,
      },
      exportPathMap: async function (
        defaultPathMap,
        { dev, dir, outDir, distDir, buildId }
      ) {
        return {
          '/blog': { page: '/' },
        }
      },
    });

我知道 Nextjs 的这个例子 - 带有区域:https ://github.com/vercel/next.js/tree/canary/examples/with-zones但这是为动态应用程序制作的,而不是静态导出的。

4

0 回答 0