【问题标题】:Why is SyntaxHighlighter being fetched via HTTP from blogger.com为什么通过 HTTP 从 blogger.com 获取 SyntaxHighlighter
【发布时间】:2017-07-01 23:17:07
【问题描述】:

我将以下 HTML 添加到我的 blogger.com 主题的 head 部分。

<link href='https://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'> 
<link href='https://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'> 
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
<script language='javascript'> 
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.config.clipboardSwf = &#39;https://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf&#39;;
    SyntaxHighlighter.all();
</script>

但是当我通过 HTTP 查看页面时,浏览器告诉我我正在从第二个 HTTPS 页面请求不安全的 HTTP 资源。

https://mrpmorris.blogspot.co.uk/2017/06/loading-assembly-from-specific-path.html

如果我在 Chome 控制台中右键单击 alexgorbatchev 链接并选择 Open in new link,它会将我带到一个不安全的页面,如果我将 https:// 添加到 URL 的开头,它会安全加载。

当标记明确指出https 时,为什么 Chrome 和 MS Edge 会尝试通过 http 获取这些资源?

【问题讨论】:

  • 与包含在 html 实体引号中的 clipboardSwf url 有什么关系?
  • 面对同样的问题已经有一段时间了(blog)。 CDN 解决方案非常适合这个问题,尽管我怀疑版本管理是如何工作的。

标签: blogs syntaxhighlighter


【解决方案1】:

我的blog. 也遇到了同样的问题

我替换了下面的一段代码:

<link href='https://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='https://alexgorbatchev.com/pub/sh/current/styles/shThemeEclipse.css' rel='stylesheet' type='text/css'/>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='https://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>

用下面的:

<link href='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeEclipse.css' rel='stylesheet' type='text/css'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.js' type='text/javascript'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.js' type='text/javascript'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.js' type='text/javascript'/>

现在我的博客不再抛出不安全内容被阻止的错误。因为现在所有内容都是通过 https 提供的,而且也是由世界上最好的 cdn 之一提供的。

【讨论】:

  • 请在这里找到您的内容 -- cdnjs.com/libraries/SyntaxHighlighter
  • 谁维护这个?原始链接总是指向current,这意味着当最新版本发布时我们会得到它,但是有了这个,我们必须手动更新它?另外,旧版本会被删除吗?
【解决方案2】:
$ curl -I https://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js -k
HTTP/1.1 302 Moved Temporarily
...
Location: http://agorbatchev.typepad.com/pub/sh/3_0_83/scripts/shBrushPerl.js
...

您可以看到它实际上被重定向到 TypePad.com。这背后有一个“很酷”的故事。在带宽昂贵的黑暗日子里,我在这些脚本上获得了 100 GB 的流量,开始每月花费超过 100 美元。我将文件移至免费托管服务,但我不希望所有现有的 alexgorbatchev.com 链接都中断,因此我设置了重定向。

我可能应该修复重定向以使用与请求相同的协议:)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-09-29
  • 2018-12-13
  • 2016-10-05
  • 2020-05-19
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 2019-07-18
相关资源
最近更新 更多