WASM/DotNet Integrity属性对于Github页面上的Blazor应用程序无效

2022-02-27 00:00:00 javascript html github-pages blazor jekyll

See the error on my website here

我在我的Jekyll站点中嵌入了一个Blazor应用程序。它在本地运行得很好,但是当我在GitHub页面上发布它时,我收到以下错误:

Failed to find a valid digest in the 'integrity' attribute for resource 'https://chrisevans9629.github.io/blazor/xt/_framework/wasm/dotnet.3.2.0-rc1.20222.2.js' with computed SHA-256 integrity 'yVt8FYsTQDifOGsifIkmEXwe+7ML0jZ1dMi2xluiDXQ='. The resource has been blocked.

这是我认为Blazor在页面运行时生成的内容。我的页面在启动Blazor时是这样的:

<script src="js/index.js"></script>
<app>Loading...</app>
Built with <3 using Blazor
<script src="_framework/blazor.webassembly.js"></script>

GitHub页面上的页面外观如下:


<script src="js/index.js"></script>

<app>Loading...</app>
<p>Built with &lt;3 using Blazor
<script src="_framework/blazor.webassembly.js"></script></p>        

<script type="text/javascript">var Module; window.__wasmmodulecallback__(); delete window.__wasmmodulecallback__;</script><script src="_framework/wasm/dotnet.3.2.0-rc1.20222.2.js" defer="" integrity="sha256-iZCHkFXJWYNxCUFwhj+4oqR4fkEJc5YGjfTTvdIuX84=" crossorigin="anonymous"></script></body>

为什么会发生此错误,我如何修复此错误?我考虑过创建一个删除完整性属性的脚本,但我认为这不是一个好的解决方案。


解决方案

我找到答案here

原因

因为我使用GitHub页面来托管我的Blazor应用程序,所以它使用git来推送代码。默认情况下,Git在提交代码时会尝试规格化行尾,这会导致blazor应用程序的完整性因文件更改而失败。

解决方案

要解决此问题,我向我的blazor文件夹添加了一个内容为* binary的.gittributes文件。

这告诉git将所有文件视为二进制文件,因此不规范化行尾。在我这样做之后,我不得不删除我的Blazor应用程序中的_framework文件夹并重新构建它。完成此操作后,Blazor应用程序正常工作。

相关文章