Wordpress 网站页面显示不正常,样式文件由于 https 问题无法加载

文章目录

    看到一个 Wordpress 网站页面显示混乱,从浏览器调试工具看,是 CSS 样式文件及 JS 文件无法加载。
    原因是,网站是 https 的链接,但是页面中引入的 css 和 js 都是 http 加载的,所以无法生效。

    从主题的 styles.php 文件看:

    wp-content/themes/some_theme/framework/styles.php

    虽然通过 is_ssl() 函数判断了是否是 https 加载,但是实际上 enqueue_style 都是使用的 http。

    说明 is_ssl() 函数的判断有问题。

    现在回到 wordpress 的源码部分:

    wp-includes/load.php

    function is_ssl() {
    	if ( isset( $_SERVER['HTTPS'] ) ) {
    		if ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) {
    			return true;
    		}
    
    		if ( '1' === (string) $_SERVER['HTTPS'] ) {
    			return true;
    		}
    	} elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' === (string) $_SERVER['SERVER_PORT'] ) ) {
    		return true;
    	}
    
    	return false;
    }
    

    从代码看,估计是 Nginx 的配置问题,没有将变量传递过来。

    但是,我不太感动这里的 nginx 配置,因为这个网站是别人的,用宝塔设置的,我不确定宝塔的机制,
    所以还是不动 nginx 配置了。

    我这里直接把 is_ssl 强制返回 true 得了。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式