记一次博客系统网站后台控制台报错解决过程

2023年 8月 21日 42.0k 0

本文是我首次在稀土掘金发表的第1篇文章,感谢你的阅读。

前言

最近使用ECS服务器部署Centos系统搭建了一个线上个人博客类网站,由于不是很懂前后端项目有哪些,不懂一个项目工程的是如何从0到100的开发过程,索性使用了目前使用人数最多的CMS系统:WordPress,WordPress (简称 WP)可以说是全球最流行的博客系统了,没有之一,世界上约 30% 的网站都是基于 WordPress 搭建的。

不用亲自造轮子,直接扫码骑共享单车。。。

Snipaste_2023-08-20_20-51-57.jpg

使用的是LNMP环境,比较简单。。

正文

起因

起初在编辑网页的时候,发现部分按钮不能很好的点击,没有反馈,但是又没有用到,所以就没有管他,只要有用到的功能没受影响。。

Snipaste_2023-08-20_20-55-10.jpg

故障现象

然而,当我使用了可视化编辑器的时候,发现可视化编辑器也不能使用了。可视化编辑区白屏,没有完全加载出来,导致我无法使用可视化编辑器编辑排版网页。

记一次博客系统网站后台控制台报错解决过程-1

主题--自定义预览区无法渲染,一直载入中,也没有任何提示。使用小工具等修改的方式全都无效。

包括预览其他主题,切换到默认主题,也都无法正常渲染。

查看网页开发者工具栏的控制台,发现很多报错,这些报错在后台所有页面都有,而在前台就没有。

Snipaste_2023-08-20_22-27-37.jpg

其中的几例报错:

Uncaught TypeError: Cannot read properties of undefined (reading 'hooks')

Uncaught ReferenceError: wp is not defined

Uncaught TypeError: Cannot read properties of undefined (reading '__')

Uncaught TypeError: Cannot read properties of undefined (reading 'setLocaleData')

记一次博客系统网站后台控制台报错解决过程-2

通过查阅WordPress博客文档得知,应该是某个地方阻止了js样式文件的加载,导致hookes不到。

于是开始尝试禁用、卸载所有WordPress插件,清空浏览器缓存,清空DNS缓存,更换浏览器等方法,以及重装WordPress,降低WordPress版本,重新还原到能自定义编辑时的设置、快照,但都不起作用,这过程很心酸,欲哭无泪,这过程耗费了很多时间心思,数据库,前后端代码,脚本语言,类对象等等啥的都看过了,但最后都没有解决,就差研究WordPress怎么从0到100了。(在心里欲哭无泪了很久---)

自己还在社区提了个沸点:求助,大佬们谁能帮忙解决一下呀,但是没有人解答,预算不足,无奈,只能自己解决。

思考

由于环境是在云上的,后面在本地搭建了同样环境的WordPress,想要复现一下好好排查,但是在本地搭建就没有这样的问题,什么操作都是畅通无阻。

由于在本地环境测试,没有网络消耗,开销值近乎为0,于是开始怀疑是网络原因导致的,才想到网站原来开启了CDN功能,而且CDN又有缓存回源机制,猜测应该是CDN对于后台类资源传输有问题,于是乎想到了在CDN方面下手,关于CDN的功能介绍,可参考云厂商相关产品文档说明。

解决方法

解决方法有两个:

其1,就是本机自己绕过CDN,也就是管理网站的那台机器,自己在用的机器,绕过CDN,那样,网站上的所有网页文件资源对于管理机器自己而言都是实时传输了,没有缓存回源的机制问题。

其2,就是直接在服务器上对网站自身进行配置管理,那样而言,数据回传都在服务器本地自己,也是没有网络原因影响的存在。

以上的方法2,对于我遇到的问题其实行不通,并不可取,虽然不失为一种解决方法,原因是服务器自己并没有图形化界面,而管理网站需要有图形化的浏览器,还要额外牺牲服务器性能资源,来安装VNC桌面环境进行管理,那样的话,如果服务器的性能配置比较高,则没什么影响,但是对于低配置低性能的服务器行不通,而且还很卡,还影响到了正常网站的运行,并且自己在本地的数据回传只能是IP形式,如果使用域名,服务器仍然需要向外部的DNS进行解析,那样数据还是要出去再回来,也还是有网络带宽开销,再并且,WordPress网站已经设置了限制,只能使用域名访问。

最后决定

于是乎,采用了方法1,就是本机自己绕过CDN,绕过CDN的方法有很多,其中之一就是将自己本机的hosts域名解析配置文件直接绑定源服务器IP。关于hosts域名解析,可自行baidu,有较为全面的介绍。

各个系统修改hosts解析配置文件的方法都不同,但原理都是一样的,直接在hosts解析配置文件里将源服务器IP与域名进行绑定,那样该机器在解析这个域名的时候,就能找到对应网站的IP地址。

以下为Windows系统示例:hosts配置文件一般位于系统盘的windows文件夹下:

C:WindowsSystem32driversetchosts

Snipaste_2023-08-20_23-05-14.jpg

然后写入要绑定的域名和IP,最后保存即可。

192.168.1.1 www.example.com

Snipaste_2023-08-20_23-09-46.jpg

至此,本机自己在解析对应的域名时,就能找到对应网站的IP地址,从而直接进行数据传输,无需经过CDN回源缓存,故障现象也得到了解决。

总结

这个问题看似原因以及解决的方法都很简单,但其实如果自己没有很好的思路方法去排查,去看待问题的话,终究也会是像没有导航一样的车在陌生的地方行驶,前方是怎样的路途,谁也不知道。

注意:如果你遇到的问题以及使用环境和我一样,再参考文中的解决方法,若否,则再另寻他法。

希望此解决过程的方法对骑了共享单车的项目有用吧,也希望对亲自造轮子的项目也有用吧。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论