Azure Linux Web App Node版本始终不符问题求助
以下是你可能遗漏的排查点:
检查启动命令/脚本的Node路径
如果应用使用了自定义启动命令或startup.sh脚本,可能直接调用了系统默认的node命令,而该命令指向旧版本。Azure App Service中不同Node版本的可执行文件路径为/opt/Node/<version>/bin/node,比如Node 18 LTS的路径是/opt/Node/18-lts/bin/node。你需要修改启动命令,指定完整路径,或者确保PATH变量优先指向对应版本的目录。验证站点是否完成彻底重启
有时候修改配置后,站点可能没有完成彻底重启。可以尝试在Azure门户「概述」页点击「重启」,或通过Cloud Shell执行:az webapp restart --name axiocontentstrapi --resource-group axio-headless1重启后等待2-3分钟,再重新检查Node版本。
检查
PATH环境变量配置
登录到Web App的SSH终端,执行以下命令查看当前PATH:echo $PATH确认Node 18的路径(如
/opt/Node/18-lts/bin)是否在PATH最前面。如果旧版本路径优先级更高,可在「配置/应用程序设置」中添加PATH环境变量,值为/opt/Node/18-lts/bin:$PATH来调整优先级。排查本地缓存影响
如果Web App启用了本地缓存(设置了WEBSITE_LOCAL_CACHE_OPTION为Always),可能缓存了旧的运行时环境。可暂时将该设置改为Never,重启站点后检查版本,确认后再根据需求调整。确认是否使用了自定义容器
如果Web App基于自定义容器部署,Azure门户的栈设置不会生效,需要修改容器镜像中的Node版本,或在Dockerfile中指定正确的Node版本。
内容的提问来源于stack exchange,提问作者mbue

