当我试图将本地JavaScript文件的链接引用更改为GitHub原始版本时,我的测试文件停止工作。错误是:

拒绝执行脚本…因为它的MIME类型(文本/纯)是不可执行的,并且启用了严格的MIME类型检查。

有没有办法禁用这种行为,或者有没有服务允许链接到GitHub原始文件?

工作代码:

<script src="bootstrap-wysiwyg.js"></script>

故障代码:

<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>

当前回答

我的用例是直接从我的Bitbucket帐户加载“bookmarklets”,该帐户与Github有相同的限制。我想到的工作是AJAX的脚本和运行eval的响应字符串,下面的代码片段是基于这种方法。

<script>
    var sScriptURL ='<script-URL-here>'; 
    var oReq = new XMLHttpRequest(); 
    oReq.addEventListener("load", 
       function fLoad() {eval(this.responseText + '\r\n//# sourceURL=' + sScriptURL)}); 
    oReq.open("GET", sScriptURL); oReq.send(); false;
</script>

注意,添加sourceURL注释是为了允许在浏览器的开发人员工具中调试脚本。

其他回答

或者,如果生成标记服务器端,您可以只获取和注入。 例如,在JSTL中,你可以这样做:

<script type="text/javascript">
    <c:import url="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js" />
</script>

他们不允许盗链是有原因的,所以如果你想成为一个好公民,这可能是很糟糕的形式。我建议你缓存javascript,只在你认为合适的时候定期重新获取。

Raw.github.com并不是真正的原始访问文件资产, 而是Rails渲染的视图。 所以访问raw.github.com比需要的要重得多。 我不知道为什么raw.github.com被实现为Rails视图。 GitHub没有修复这个路由问题,而是添加了一个X-Content-Type-Options: nosniff报头。

处理:

将脚本放到user.github.io/repo 使用第三方CDN,如rawgit.com。

这已经不可能了。GitHub明确禁用了JavaScript 盗链和较新版本的浏览器都支持该设置。

注意:Chrome和Firefox将支持nosniff头文件

我和你有同样的问题,我所做的就是改变

<script type="application/javascript" src="bootstrap-wysiwyg.js"></script>

这对我很管用。

https://raw.githack.com/

发现这个网站提供了一个CDN

删除nosniff HTTP报头 修复mime类型的ext名称

这个网站:

https://rawgit.com/

注意:RawGit已经达到了它的使用寿命