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

部署后无法在Azure App Service访问Strapi管理面板

解决Azure App Service上Strapi管理面板无法访问的问题

问题1:让Strapi管理面板公开可访问的步骤

按以下顺序调整配置和设置:

  1. 修正Strapi的核心配置
    打开项目根目录下的config/server.js(生产环境优先使用config/env/production/server.js),修改为以下配置:

    module.exports = ({ env }) => ({
      host: env('HOST', '0.0.0.0'), // 监听所有网络接口,不要填写具体域名
      port: env.int('PORT', process.env.PORT || 1337), // 使用Azure自动分配的端口,禁止硬写固定值
      app: {
        keys: env.array('APP_KEYS'),
      },
      url: env('PUBLIC_URL', 'https://your-app-name.azurewebsites.net'), // 替换为你的Azure默认域名
    });
    

    同时修改config/admin.js(或生产环境对应配置文件),指定管理面板的公共访问路径:

    module.exports = ({ env }) => ({
      auth: {
        secret: env('ADMIN_JWT_SECRET'),
      },
      url: '/admin', // 也可以直接填写完整URL:'https://your-app-name.azurewebsites.net/admin'
      serveAdminPanel: true,
    });
    
  2. 配置Azure App Service的环境变量
    进入Azure门户的目标App Service -> 配置 -> 应用设置,添加/修改以下变量:

    • NODE_ENV:设为production(必须,否则Strapi会加载开发模式配置,限制外部访问)
    • PUBLIC_URL:填写你的Azure完整域名(例如https://your-app-name.azurewebsites.net)
    • 不要手动设置PORT变量,保留Azure自动分配的端口即可
  3. 使用生产环境启动命令
    npm run develop仅适用于本地调试,生产环境必须使用npm start(对应Strapi的strapi start命令):

    • 在Azure的配置 -> 常规设置 -> 启动命令中填写npm start
    • 检查项目的package.json,确保start脚本配置为"start": "strapi start"
  4. 确保部署时完成构建
    无论用FTP还是GitHub Actions部署,都必须执行npm run build生成管理面板的静态文件:

    • FTP部署后,登录Kudu控制台(https://your-app-name.scm.azurewebsites.net)执行:
      npm install
      npm run build
      
    • GitHub Actions的部署脚本中要包含上述两条命令

问题2:是否需要映射localhost与Azure域名?

不需要。你之前的错误是把host参数设为了具体域名,Strapi的host是用来指定服务监听的网络接口,填写0.0.0.0才能让Azure的反向代理正确转发外部请求。管理面板的访问路径是通过config/admin.js的url参数与Azure域名关联的,完全不需要做localhost到域名的映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:15:54