Https 与鹈鹕混合的内容物
TL;博士 我的鹈鹕是通过HTTPS提供服务的,但由于“混合内容”,CSS不会加载,即使它们在页面源代码中显示为HTTPS 上下文 我在GitHub页面上有一个Pelican博客。我有一个自定义域的CNAME记录指向这个博客 目的 我正试图通过HTTPS实现此博客的服务,这是可能的(GitHub支持人员告诉我这是目前唯一的解决方案) 问题 在按指示设置所有内容后,我可以安全地访问我的博客,但CSS不会加载,因为它们被指示为混合内容 但是,当我查看页面源代码时,所有CSS都应该使用HTTPS(因为它包含在协议相关URL中):Https 与鹈鹕混合的内容物,https,cloudflare,pelican,Https,Cloudflare,Pelican,TL;博士 我的鹈鹕是通过HTTPS提供服务的,但由于“混合内容”,CSS不会加载,即使它们在页面源代码中显示为HTTPS 上下文 我在GitHub页面上有一个Pelican博客。我有一个自定义域的CNAME记录指向这个博客 目的 我正试图通过HTTPS实现此博客的服务,这是可能的(GitHub支持人员告诉我这是目前唯一的解决方案) 问题 在按指示设置所有内容后,我可以安全地访问我的博客,但CSS不会加载,因为它们被指示为混合内容 但是,当我查看页面源代码时,所有CSS都应该使用HTTPS(因
...
我已尝试将PelicanSITEURL
变量设置为//nonatomiclabs.github.io
和https://nonatomiclabs.github.io
这不会改变任何事情(因此问题不是由于使用了协议相关URL)
CloudFlare还有一个“自动HTTPS重写”功能,该功能应该可以消除/减少混合内容问题,但对我的情况没有帮助
问题
如果需要查看代码:
- 该网站的网址为
- 源代码可以在
分支包含鹈鹕源代码source
分支包含已发布的站点master
https:
显式地预先设置静态资产链接,而不是依赖SITEURL
设置,然后查看是否有任何更改
第二,唯一失败的资源是从开始的资源——似乎对该域的请求正在被重新定向,而重新定向可能是问题的原因。尝试使用不重新定向的域。例如:
<link href="https://www.nonatomiclabs.com/theme/css/local.css" rel="stylesheet">
[...]
[...]
值得一提的是,对于我的个人网站,我的base.html模板的CSS链接看起来类似于。我在publishconf.py设置文件中将我的SITEURL
设置设置为,结果输出包含正确的、完全限定的链接(即非协议相关链接),不会产生混合内容警告
顺便说一句,因为它们在无处不在的TLS世界中基本上已经过时,尤其是今年7月。)
另一方面,有迹象表明,您最终可能能够在不使用CloudFlare的情况下通过HTTPS为您的站点提供服务。谢谢您的回答!通过设置SITEURL=“”,我已经尝试使用HTTPS URL了,但也没有帮助。如果您访问实际的网站并查看页面的源代码,似乎所有CSS都包含在HTTPS中。这确实是我不理解的地方。我在base.html中硬编码了URL,但它似乎没有改变任何东西:(唯一失败的资源是那些以
https://nonatomiclabs.github.io
-该域的资源请求似乎被重新定向到https://www.nonatomiclabs.com
,重新定向可能是问题的原因。我更新了答案以说明这种可能性。我d将CloudFlare的SSL选项从“完整”更改为“灵活”,它可以工作。我很想知道解决这个问题的另一种方法,但我花了足够的时间,我想我最终还是会迁移到GitHub管理的HTTPS。无论如何,感谢您的快速回答,并感谢您的Pelican!:)
<link href="https://www.nonatomiclabs.com/theme/css/local.css" rel="stylesheet">
[...]