无法摆脱丢失的manifest.json错误

时间:2018-11-28 20:57:30

标签: reactjs visual-studio google-chrome asp.net-core manifest.json

我正在Visual Studio 2017中使用ASP.NET Core前端构建一个ReactJs应用。

最近,我开始注意到控制台中缺少manifest.json错误-见下文。它似乎并没有影响我的应用,但我确实想摆脱此错误。 enter image description here

如果我在Edge中查看我的应用,则看不到丢失的manifest.json错误,因此该错误似乎只包含在Chrome中。

我将应用程序发布到Azure,然后再次在Chrome中出现相同的错误,但在Edge中却没有。

有什么办法可以解决吗?

11 个答案:

答案 0 :(得分:4)

项目中的某个地方很可能引用了manifest.json,而文件/资源​​本身不存在。

检查是否有与link类似的rel=manifest标签

<link rel="manifest" href="/manifest.webmanifest">
  

在规范的媒体类型注册部分中指定了.webmanifest扩展名,但是浏览器通常支持带有.json之类的其他适当扩展名的清单。

<link rel="manifest" href="/manifest.json">

并将其从代码中删除以停止错误。

引用Web App Manifest

答案 1 :(得分:1)

对于那些狩猎者,没有逻辑解决方案,请尝试使用其他浏览器或隐身模式。我对该文件存在永久性错误,这是Chrome的(垃圾)插件。我在JS中通过不良的包装或调试器以及其他违规行为经常看到这种情况。请注意,因为JS是非常危险且困难的语言。

答案 2 :(得分:1)

就我而言,在将 React 与 asp.net core 和身份结合使用时,在将整个应用程序设置为需要通过 Startup.cs 进行身份验证时,我开始收到此错误。

services.AddAuthorization(options =>
        {
            options.FallbackPolicy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
        });

这导致了清单语法错误,因为我的 Index.html 像这样引用了 manifest.json:

<link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> 

在要求对所有页面进行身份验证后,我的应用没有足够的权限来访问该文件。

TLDR; 即使您引用的清单文件存在,请确保您有权从您的应用访问它。

答案 3 :(得分:0)

manifest.json文件可能位于预期的位置。解决方案是在web.config文件的.json文件的静态内容部分下添加一个条目。

#df.date=pd.to_datetime(df.date)
s=pd.to_datetime(df.date.dt.strftime('%Y-%m')+'-10').to_frame()
df=pd.concat([df,s.loc[~s.date.isin(df.date),].drop_duplicates()],sort=True).\
      sort_values('date').\
         reindex(columns=df.columns)
df
         date  col1   col2
19 2018-03-10  69.0  113.0
0  2018-05-10   NaN    NaN
0  2018-05-25  18.0   14.0
1  2018-06-04  19.0   16.0
1  2018-06-10   NaN    NaN
2  2018-06-15  19.0   18.0
3  2018-06-24  21.0   20.0
4  2018-07-10  23.0   23.0
5  2018-07-20  25.0   25.0
6  2018-08-01  27.0   29.0
7  2018-08-10  28.0   32.0
8  2018-08-22  29.0   35.0
9  2018-09-03  29.0   37.0
9  2018-09-10   NaN    NaN
10 2018-09-25  31.0   48.0
11 2018-10-10   NaN    NaN
11 2018-10-17  34.0   55.0
12 2018-11-10  38.0   63.0
13 2018-11-11  39.0   64.0
14 2018-12-10  48.0   77.0
15 2018-12-11  49.0   78.0
16 2019-01-10   NaN    NaN
16 2019-01-11  57.0   88.0
17 2019-02-10  63.0  103.0
18 2019-02-24  67.0  111.0
20 2019-03-10   NaN    NaN
20 2019-03-11  70.0  115.0
21 2019-04-10  80.0  149.0
22 2019-05-10   NaN    NaN
22 2019-05-11  88.0  209.0

如果需要添加或编辑web.config文件,可以使用Kudu debug console进行。 (将您的应用替换为链接中的应用)

您还可以从门户的应用程序的“开发工具”下启动调试控制台: enter image description here

如果manifest.json文件实际上丢失,则可以按照Google's instructions for adding a manifest.json file.

进行修复。

Chrome需要使用Web App Manifest,才能在Web应用程序中启用添加到主屏幕提示。

答案 4 :(得分:0)

在反应中,您可能会在公用文件夹中找到manifest.json,并在index.html中找到此文件的链接。

manifest.json提供将Web应用程序安装在用户的移动设备或桌面上时使用的元数据。参见https://developers.google.com/web/fundamentals/web-app-manifest/

<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

答案 5 :(得分:0)

只需添加crossorigin="use-credentials",它将看起来像: <link rel="manifest" href="/site.webmanifest" crossorigin="use-credentials">

答案 6 :(得分:0)

在将我的案例中的React客户端上传到Google应用引擎后,由于存在相同的错误,并且清单JSON存在,因此更新app.yaml保存了这种情况:

  - url: /(.*\.(js|css|png|jpg|svg|json|ico|txt))$
    secure: always
    static_files: build/\1
    upload: build/.*\.(js|css|png|jpg|svg|json|ico|txt)$

答案 7 :(得分:0)

IIS也可以通过扩展名限制文件。检查以确保.json没有在此处列出!

enter image description here

答案 8 :(得分:0)

好,只需执行以下操作:

只需替换通话:

<link rel="manifest" href="manifest.json">

作者

<link rel="manifest" href="manifest.json" crossorigin="use-credentials">

答案 9 :(得分:0)

我在Lighthouse中查找文件'asset-manifest.json'时遇到了一个错误。快速的选择是使用该名称创建一个空文件,该文件将消除错误。

答案 10 :(得分:0)

在你的主 index.html 中会有这样的代码:

<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

将其替换为:

<link rel=“manifest” href="/src/manifest.json">