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

如何指定Azure Web App中server.js文件的位置?

解决Azure Web App无法识别dist目录下server.js的启动问题

方案1:直接指定启动命令(最快解决)

Azure Web App默认只会在根目录查找server.js、app.js等启动文件,你可以直接告诉它去dist目录找,不用移动文件夹:

  • 通过Azure Portal配置:
    1. 进入你的Web App后台,打开「配置」→「常规设置」
    2. 在「启动命令」输入框中填写 node dist/server.js,保存后重启Web App
  • 通过GitHub Actions部署时配置:
    在你的deploy步骤(比如Azure/webapps-deploy)中添加启动命令的应用设置,示例:
    - name: Deploy to Azure Web App
      uses: Azure/webapps-deploy@v2
      with:
        app-name: your-app-name
        publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
        package: .
        app-settings-json: '{"STARTUP_COMMAND":"node dist/server.js"}'
    

方案2:修改package.json的start脚本(更规范)

Azure会优先读取项目根目录package.json中的start脚本作为启动命令,直接修改这个脚本指向dist下的server.js:

{
  "scripts": {
    "start": "node dist/server.js",
    "dev": "nodemon src/server.js" // 保留你的本地开发命令
  }
}

修改后,不管是本地启动还是Azure部署启动,都会用这个命令,彻底避免文件夹结构变动带来的路径问题。

关键注意事项

  1. 确保GitHub Actions的部署流程中包含dist目录:如果dist是构建生成的,要在yml里先执行构建命令(比如npm run build),并且不要在.gitignore里排除dist(如果是构建产物,建议构建后再部署,不要把dist提交到Git)
  2. 检查Express的静态文件路径:如果你的静态资源在根目录的build文件夹,而server.js在dist里,要确保路径是相对正确的,比如:
    const path = require('path');
    app.use(express.static(path.join(__dirname, '../build')));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:35:26