Next.js NextJS assetPrefix和basePath前缀未生效
我试图创建一个简单的NextJS站点,在所有链接上都有Next.js NextJS assetPrefix和basePath前缀未生效,next.js,Next.js,我试图创建一个简单的NextJS站点,在所有链接上都有/app前缀,但没有成功。因此,在主页上(有一个链接到/about),about链接应该以/app/about结尾 (根据下面的评论更新)我的next.config.js文件如下所示: module.exports = { assetPrefix: "/app", publicRuntimeConfig: { basePath: "/app", }, basePath: &quo
/app
前缀,但没有成功。因此,在主页上(有一个链接到/about
),about链接应该以/app/about
结尾
(根据下面的评论更新)我的next.config.js
文件如下所示:
module.exports = {
assetPrefix: "/app",
publicRuntimeConfig: {
basePath: "/app",
},
basePath: "/app",
};
我的package.json
的脚本部分有:
"build": "next build && next export",
但是,当我将生成的out
文件夹的内容复制到我的web服务器时,索引页的“About”链接总是指向/About
,而没有所需的前缀。是什么原因造成的?似乎assetPrefix
值正在工作:
因此,只有root
basePath
字段不起作用。这个问题最近被报告为已修复
尝试使用最新的金丝雀版本。现在它是9.5.2-canary.18根据nextjs文档,您应该设置module.exports={basePath:'/app',},而不是在publicRuntimeConfig下。使用publicRuntimeConfig的页面必须有getInitialProps,否则它将不可用。@zoranjeremic我调整了next.config.js,使其看起来与root
basePath
字段相同,但仍然运行相同的结果。此外,为了确认这是NextJS问题(与此应用程序所在的服务器无关),当我直接打开out
文件夹中生成的index.html
文件时,它会链接到file:///about
,而我希望它是file://app/about
尝试改用experimental.basePath。另外,尝试使用nextjs的最新金丝雀版本9.5.2-canary.18。有一些报告说,这是最近修复的,这样做的伎俩!谢谢你让我注意到金丝雀的释放。如果你把它作为一个答案,我会接受。