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

.NET 7 MVC创建PWA遇ArgumentNullException:Path参数不能为空

解决ASP.NET Core PWA ArgumentNullException(Path参数为空)问题

问题根源

你遇到的ArgumentNullException是因为WebEssentials.AspNetCore.PWA包无法定位到manifest文件路径,或是静态资源配置缺失导致路径解析失败。

解决方案

1. 确认manifest.json的位置

将manifest.json放在项目的wwwroot目录下(ASP.NET Core默认的静态资源根目录),如果放在其他位置需要显式指定完整路径。

2. 显式配置PwaOptions的ManifestFilePath

修改Program.cs配置,明确指定manifest文件路径,同时必须添加静态文件中间件(这是访问manifest和图标资源的必要前提):

var builder = WebApplication.CreateBuilder(args);

// 添加MVC服务
builder.Services.AddMvc();

// 配置PWA,显式指定manifest文件路径
builder.Services.AddProgressiveWebApp(new PwaOptions 
{ 
    RegisterServiceWorker = true,
    ManifestFilePath = "manifest.json" // 对应wwwroot目录下的manifest.json
});

var app = builder.Build();

// 启用静态文件中间件,否则无法访问manifest和图标
app.UseStaticFiles();

app.UseRouting();
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

3. 修正图标路径与文件名

建议移除图标文件名中的空格(比如将icon 192x192.png改为icon-192x192.png),避免路径解析异常,同时确保images文件夹位于wwwroot目录下,修改后的manifest.json图标配置:

{
  "name": "PWADemo",
  "short_name": "PWA",
  "description": "Demo PWA application in ASP.NET Core.",
  "icons": [
    {
      "src": "/images/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/images/icon-512x512.png",
      "type": "image/png",
      "sizes": "512x512"
    }
  ],
  "display": "standalone",
  "start_url": "/"
}

4. 验证文件存在性

确认以下文件都存在对应路径:

  • wwwroot/manifest.json
  • wwwroot/images/icon-192x192.png
  • wwwroot/images/icon-512x512.png

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:46:24