我正在Visual Studio 2017中使用ASP.NET Core
前端构建一个ReactJs
应用。
最近,我开始注意到控制台中缺少manifest.json
错误-见下文。它似乎并没有影响我的应用,但我确实想摆脱此错误。
如果我在Edge中查看我的应用,则看不到丢失的manifest.json
错误,因此该错误似乎只包含在Chrome中。
我将应用程序发布到Azure,然后再次在Chrome中出现相同的错误,但在Edge中却没有。
有什么办法可以解决吗?
答案 0 :(得分:4)
项目中的某个地方很可能引用了manifest.json
,而文件/资源本身不存在。
检查是否有与link
类似的rel=manifest
标签
<link rel="manifest" href="/manifest.webmanifest">
在规范的媒体类型注册部分中指定了
.webmanifest
扩展名,但是浏览器通常支持带有.json
之类的其他适当扩展名的清单。
即
<link rel="manifest" href="/manifest.json">
并将其从代码中删除以停止错误。
答案 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进行。 (将您的应用替换为链接中的应用)
如果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)
答案 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">