如何解决在bootstrap.min.css上有完整性属性问题

Nik*_*are 11 haml css3 twitter-bootstrap ruby-on-rails-4 twitter-bootstrap-3

我在我的项目中使用bootstrap图标,这给了我错误

子资源完整性:资源" http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css "具有完整性属性,但资源要求启用CORS的请求以检查完整性,它不是.资源已被阻止,因为无法强制执行完整性.

任何人都可以帮我解决这个问题,当我们搬到生产时,图标没有加载.

所以我在下面的链接使用bootstrap图标

%link{:href => "http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css", :integrity => "sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7", :rel => "stylesheet"}/
Run Code Online (Sandbox Code Playgroud)

Sch*_*lzy 18

我想你错过了crossorigin="anonymous".

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
Run Code Online (Sandbox Code Playgroud)

当请求与Same Origin Policy不匹配时,必须存在crossorigin属性以保证要检查的文件的完整性.如果在外部源上设置了完整性并且缺少crossorigin,则浏览器将选择"fail-open",这意味着它将加载资源,就像未设置integrity属性一样.

资源

  • 注意阵营服务器渲染的用户:您需要使用驼峰为`crossOrigin`. (18认同)
  • 如果您通过 javascript 加载异步,crossOrigin 也区分大小写。`&lt;script type="text/javascript"&gt; (function() { var css = document.createElement('link'); css.href = 'https://pro.fontawesome.com/releases/v5.6.3/css /all.css'; css.rel = 'stylesheet'; css.type = 'text/css'; css.integrity = 'sha384-somehash'; css.crossOrigin = 'anonymous'; console.log(css); 文档.getElementsByTagName('head')[0].appendChild(css); })(); &lt;/脚本&gt;` (8认同)

Kay*_*ues 8

我试图通过Chrome DevTools控制台将jQuery插入页面,我收到了这个错误.这是我使用的代码:

// Bad code
let script = document.createElement('script');
script.src = 'https://code.jquery.com/jquery-3.2.1.min.js';
script.crossorigin = 'anonymous';
script.integrity = 'sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=';
document.head.appendChild(script);
Run Code Online (Sandbox Code Playgroud)

解决方案是更改crossorigincrossOrigin(原点的大写O):

// Good code
let script = document.createElement('script');
script.src = 'https://code.jquery.com/jquery-3.2.1.min.js';
script.crossOrigin = 'anonymous';
script.integrity = 'sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=';
document.head.appendChild(script);
Run Code Online (Sandbox Code Playgroud)