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

如何配置IIS将Next.js 14应用部署至指定子路径?

IIS配置Next.js 14子路径(mydomain.com/mynextapp)部署指南

前置准备

  • 确保服务器已安装iisnode和URL Rewrite模块(可通过Web平台安装器下载)
  • 配置Next.js项目的next.config.js,添加生产打包配置:
/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'standalone', // 生成独立可部署的服务器文件
  basePath: '/mynextapp', // 匹配IIS子路径别名
}

module.exports = nextConfig
  • 执行生产打包命令:npm run build

部署文件到服务器

  • 在C://inetpub/wwwroot目录下创建mynextapp文件夹
  • 将Next.js打包后生成的.next/standalone目录下的所有文件,以及.next/static、public文件夹,复制到C://inetpub/wwwroot/mynextapp目录中

IIS管理器配置

  1. 打开IIS管理器,找到绑定mydomain.com的目标网站
  2. 右键点击网站,选择添加应用程序:
    • 别名:填写mynextapp
    • 物理路径:指向C://inetpub/wwwroot/mynextapp
    • 应用程序池:选择无托管代码的池(若没有则新建一个,.NET CLR版本设为无托管代码)

配置web.config文件

在C://inetpub/wwwroot/mynextapp目录下创建/替换web.config,内容如下(注意修改node.exe路径为服务器实际安装路径):

<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="Next.js Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="server.js" />
        </rule>
      </rules>
    </rewrite>
    <!-- 替换为服务器上node.exe的实际路径 -->
    <iisnode nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" />
    <httpErrors errorMode="Detailed" />
  </system.webServer>
</configuration>

权限与故障排查

  • 给C://inetpub/wwwroot/mynextapp目录添加IIS_IUSRS和IUSR用户的读取权限
  • 若仍报错,检查:
    • web.config的XML语法是否正确(标签闭合、无拼写错误)
    • iisnode模块是否已正确注册到IIS
    • 应用程序池的身份是否有足够权限访问文件
    • 重启IIS应用程序池和网站后再次测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:04:56