我有两个 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但这是为动态应用程序制作的,而不是静态导出的。