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

NextJS 13中如何将静态站点挂载到自定义URL路径?

在Next.js中挂载静态站点到自定义URL路径

要实现将/static/site1/等静态目录映射到myportfolio.com/demo/site1/这类URL路径,可以通过以下步骤完成:

1. 配置Next.js重写规则

在你的作品集网站的next.config.js中添加rewrites配置,将请求路径映射到对应的静态文件目录:

/** @type {import('next').NextConfig} */
const nextConfig = {
  async rewrites() {
    return [
      {
        source: '/demo/:site*', // 匹配所有/demo/开头的路径
        destination: '/static/:site*', // 转发到/static下的对应目录
      },
    ];
  },
};

module.exports = nextConfig;

这个配置会自动将所有/demo/site1/xxx的请求,转发到项目根目录下/static/site1/xxx的静态文件。

2. 配置待展示站点的资源路径前缀

每个待展示的Next.js站点在构建静态文件时,需要设置basePath,确保站点内的资源引用(如CSS、JS、图片)会自动带上/demo/siteX的前缀,避免加载失败:

在每个待展示站点的next.config.js中添加:

const nextConfig = {
  basePath: '/demo/site1', // 对应该站点在作品集的URL路径,site2替换为/demo/site2
  output: 'export', // 强制导出纯静态文件
};

module.exports = nextConfig;

设置完成后执行npm run build,生成的静态文件会自动适配目标URL路径。

3. 调整Docker构建脚本

修改你的bash脚本,将每个待展示站点构建后的out目录(Next.js导出静态文件的默认目录)内容复制到作品集项目的对应static子目录:

# 示例:处理site1
git clone https://github.com/your-username/site1.git
cd site1
npm install
npm run build
# 将构建产物复制到作品集的static/site1目录
cp -r out/* ../static/site1/
# 清理临时文件
cd ..
rm -rf site1

# 同理处理site2、site3等站点

这样构建完成后,作品集网站就能通过/demo/site1/访问到对应静态站点的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:47:56