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

Azure学生版App Service部署后manifest.json文件404未找到求助

问题:Azure App Service部署后manifest.json 404错误

本地运行正常的Web应用部署到Azure学生版App Service后,核心功能(数据库连接、页面导航、用户交互等)正常,但浏览器控制台报错:GET https://basketballlearningplatform.azurewebsites.net/manifest.json 404 (Not Found)。已完成以下排查:

  • 确认layout.ejs的head中链接配置正确:<link rel="manifest" href="/manifest.json">
  • 确认express静态资源目录配置正确:app.use(express.static("./public"));
  • 确认manifest.json已存在于Azure VS Code扩展文件列表和KUDU调试控制台中

解决方案

1. 核对文件路径映射关系

确保manifest.json直接放置在public根目录下。因为express.static("./public")配置下,请求/manifest.json对应服务器上的public/manifest.json,若文件放在public子目录(如public/assets/manifest.json),需同步调整页面中的链接为/assets/manifest.json。

2. 检查文件名大小写一致性

Linux环境的Azure App Service对文件名大小写敏感,而本地Windows环境不敏感。如果KUDU中的文件名是Manifest.json或其他大小写组合,与代码中manifest.json的引用不一致,就会触发404。需确保文件名与代码引用完全匹配。

3. 将express.static的相对路径改为绝对路径

部署时相对路径可能存在解析偏差,改用绝对路径配置静态资源目录:

const path = require('path');
app.use(express.static(path.join(__dirname, 'public')));

4. 配置Azure静态资源路由与MIME类型

Windows环境(默认)

在项目根目录添加web.config文件,确保静态文件不被Node.js路由拦截,并设置正确的MIME类型:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/manifest+json" />
    </staticContent>
    <rewrite>
      <rules>
        <rule name="Node.js" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="app.js" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Linux环境

在项目根目录添加.htaccess文件,配置MIME类型和路由规则:

AddType application/manifest+json .json

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.js [L]

5. 清除缓存并重启服务

  • 登录Azure门户,找到目标App Service,点击重启按钮。
  • 在KUDU控制台中,删除缓存目录(如/home/site/wwwroot/node_modules/.cache)。

6. 直接验证文件可访问性

在浏览器中直接访问https://basketballlearningplatform.azurewebsites.net/manifest.json,检查返回内容。若仍404,需确认KUDU中文件的实际存储路径是否与预期一致(比如是否部署到了wwwroot/public目录下)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:03:08