Kay*_*Kay 8 javascript haproxy ember.js ember-cli kubernetes
我有一个已部署的 emberjs 应用程序,在 google chrome 浏览器中,我收到 2 个 .js 文件的以下错误。
无法在资源 'http://staging.org.com/assets/vendor-0ada2c9fb4d3e07ad2f0c6a990945270.js' 的 'integrity' 属性中找到有效的摘要,计算出的 SHA-256 完整性为 'Sb4Xc/Oub27QW0MKlq.Mg7mg7s' 资源被屏蔽了
当我检查文件时,我可以看到有问题的两个 .js 文件的脚本标签。我不是 100% 确定这种完整性检查是如何工作的。您可以在下面看到 sha 的完整性属性。
<script src="/assets/vendor-0ada2c9fb4d3e07ad2f0c6a990945270.js" integrity="sha256-s3XY9h9v9IThygF6UkWRvWZsf7zeTqYJ1rLfDgg1bS0= sha512-k3lfqdeZw3OcsECfD3t99Hidh6IoRlFSoIu5nJk0FkLYHwx0q/rddirj4jh4J73dmLwKfG9mx0U5Zf6ZzRBsvA==" ></script>
<script src="/assets/g-web-56670cf0485cf52f54589091e2a25cc8.js" integrity="sha256-jNmWqO61OPijscQ5cHVSbB1Ms5wKX78ZACYdhrUo3X4= sha512-oiksgRFsqgHaCvXPvd3SAsUuX4zPeVClQBIgrOgIKNBMa3hPqCHknoFqDGRtSyfN4EdIkfk/x1zSqBqRvONAGQ==" ></script>
Run Code Online (Sandbox Code Playgroud)
emberjs 应用程序是使用 docker 映像构建的,部署到 kubernetes 并且运行 haproxy 的 aws elb 正在处理该应用程序的路由,以便当我导航到staging.x.com它时,路由到该服务(emberjs web 应用程序)的 kubernetes 中的内部 dns。
有什么值得注意的;
ember serve在本地运行可以正常工作并且应用程序加载正常。该问题仅发生在我部署的登台环境中。
我在部署 Blazor WebAssembly 应用程序时收到此错误。
无法在资源的“完整性”属性中找到有效的摘要
然后它显示了几个 NuGet。手动删除解决方案中的所有bin和obj文件夹,然后重新部署。此后一切正常。
https://github.com/dotnet/aspnetcore/issues/28692#issuecomment-783333400
Ember默认使用子资源完整性 (SRI)来提高使用该框架构建的应用程序的安全性。
Mozilla 开发网络对 SRI 有很好的解释:
子资源完整性 (SRI) 是一项安全功能,使浏览器能够验证它们获取的资源(例如,从 CDN)是否在没有意外操作的情况下交付。它的工作原理是允许您提供所获取的资源必须匹配的加密哈希。
index.html此处描述的哈希值是在Ember 应用程序构建时生成并注入的。如果堆栈的任何部分(部署、Web 服务器、代理等)修改了文件,则哈希值index.html将不再与所提供的文件的哈希值匹配。因此,浏览器将阻止该资产的执行,并抛出您在问题中提到的错误。
ember-cli-sri 的文档提供了 Ember 构建管道的集成,警告了这一点:
在使用 SRI 的代码中,您不得篡改构建的输出 JavaScript 文件,因为代码将无法加载。
| 归档时间: |
|
| 查看次数: |
17181 次 |
| 最近记录: |