hexo mathjax无法渲染

本文主要记录出现问题,去找问题,踩了一些坑,最后回归本源找到问题并解决问题的过程

问题

本地hexo s启服务能正确显示,推到远端github或者博客上就无法显示
本地正常显示:


localhost.png

远端博客无法渲染:


blog.png

找问题的过程

怀疑主题没有做很好的兼容

一开始是怀疑这个问题的,因为这个主题的作者太佛系,介绍也就一句话,issue也少,fork人气也不高
如下两句话,还是废话...


fexo.png

更关键的,这个文档还是16年的,如今3年过去了...技术怎么着也得更新了吧...
于是傻傻的继续往下做实验

怀疑插件问题

之所以怀疑这个问题,是因为google相关问题后,一堆出现推荐xxx插件的博文,点开一看其实很多都差不多,到处复制而已
然后我也屁颠屁颠试咯下,结果仍然是不行

emmm...前前后后实验各种插件,各种折腾,环境各种被玩坏,一上午基本都在这种折腾中过去了

  • hexo-math
  • hexo-katex
  • hexo-renderer-mathjax
  • hexo-renderer-pandoc
  • ...

备份的重要性

这里强调下,在找问题的过程中,如果需要改变环境配置、插件、或者其他的你不能一一记下的东西时,最好先把目前稳定的环境打个包backup一下,避免后面改出问题来了,也没法回到目前的稳定版本

回到最开始状态

折腾了快一上午了,仍然解决不了我目前的问题 ,于是发现似乎是上面两个假设不太成立...
最后整理一下郁闷的心情,决定从头开始再分析一遍
如今啊,发现问题就上来一顿Google,有时候确实能解决不少问题
而有时候,却让人疏忽了真正解决问题的方法和能力

看看时间,已经到饭点了,随手抓起一个面包,灌一口水,重新打起精神
这次先加载最初出问题的相对稳定的那个版本
重新编译生成静态网页,启服务,访问,本地依然完美,推到博客依然失败
但是这次仔细观察,发现远端出现了一点不一样的地方


blog2.png

瞬间一个机灵,怕是问题在这里了,果断点了上去


blog3.png

看到这里,我心里预感,这次应该是找到问题了,估计是被拦截脚本了,继续加载
blog4.png

果然,点了加载脚本就能显示公式了,但是这里出现了不安全,https也被横杀了

终于找到问题

其实,到了这里问题已经被找到了,原因就是网页中需要加载不信任的js脚本,而网站默认不加载,导致了公式没法被js渲染出来
接下来就是怎么解决这个问题了,总不能每次都让人点这个小x盾,再让人点加载不安全的脚本吧,难道还得写个博客访问指南么...
一个字 low...

解决问题

关闭https

一种方法是关闭自己博客的https链接,直接http访问
因为我的博客是挂载在github.io上的,默认开启了https,关闭方法如下:

  • 找到github上的xxx.github.io的repo
  • 进入settings页签
  • 找到如下,把Enforce https取消勾选即可
    https.png

脚本链接选择https

上面的方法虽然可行,但是牺牲掉了一定的安全性,安全出身的我果然不能这样忘本
那就选择第二条路吧:在mathjax脚本中修改http脚本链接到https
方法如下:

  • 定位到:
    xxx\node_modules\hexo-renderer-mathjax\mathjax.html
  • 把原来的:

修改为:


  • 再重新编译,推送,访问:
hexo clean
hexo g
hexo d

Job done !

你可能感兴趣的:(hexo mathjax无法渲染)