MathJax:怎么会"Can't load web font"?



所以我下载了一个MathJax软件包,解压缩它,修改了设置并将文件上传到http域。一年多来,一切都尽可能顺利。

两天前,我将所有文件(包括数据库)复制到新域,激活SSL并修改.htaccess以将所有地址转换为https。这完全适用于除 MathJax "无法加载 Web 字体"之外的所有内容,导致每次尝试绘制表达式时都有 10 秒的延迟。

Firefox 和 Chrome 都没有在控制台中显示任何类型的错误或文件读取失败(缓存关闭,200 OK)。浏览器中的唯一效果是/mathjax/jax/output/HTML-CSS/fonts/STIX-Web/Main/Regular/Main.js/mathjax/jax/output/HTML-CSS/fonts/STIX-Web/Main/Italic/Main.js之间有9-10秒的差距。

大致时间表...

  • 2 s: read (success)/mathjax/jax/output/HTML-CSS/fonts/STIX-Web/Main/Regular/Main.js
  • 11.5 s: read (success)/mathjax/jax/output/HTML-CSS/fonts/STIX-Web/Main/Italic/Main.js
  • 12 s: read (success)/mathjax/fonts/HTML-CSS/STIX-Web/woff/STIXMathJax_Main-Regular.woff

日志(最后 4 行)...

  • 正在加载 [MathJax]/jax/output/HTML-CSS/fonts/STIX-Web/Main/Regular/Main.js
  • 加载网页字体 STIX-Web/Main/Regular
  • 无法加载网页字体 STIX-Web/主/常规
  • 正在加载 [MathJax]/jax/output/HTML-CSS/fonts/STIX-Web/Main/Italic/Main.js

在时间轴中,秒是尝试的时间戳,而不是持续时间。每个是 0-100 毫秒。

我尝试过的: 重置.htaccess,使用http加载所有内容,将所有MathJax文件从旧域重新复制到新域,并确保所有目录和文件都具有适当的权限。我还输入了失败的woff文件的路径(在地址栏中),它们可以正确下载。此外,我已经禁用了SSL并修改了脚本标签以从旧域读取设置文件和MathJax - 在尝试读取字体文件之前仍有10秒的延迟。

我怎么知道为什么MathJax不能加载网页字体?为什么 MathJax 使用相同的代码,在一个站点上增加延迟,而不是在另一个站点上添加延迟?有没有办法解决这个问题?

更新:

这现在真的很奇怪!!在站点之间交叉加载文件后,我已经缩小了要连接到我的CSS文件的错误范围...完美地通过了验证(并且站点之间根本没有字体更改)。我在该文件中所做的主要更改是直接在正文内将包装div 添加到大多数元素中,以便以 100% 宽度设置包装器的样式,但内容为 80%。

事实证明,MathJax(2.6.0 和 2.7.2)无法加载字体,因为我在#MathJax_Font_Test上设置了min-width。我不是故意这样做的,也不知道它会坏掉。这是我的解决方法:

body > div > div:not(#MathJax_Font_Test) {
min-width: 960px;
}

相关内容

最新更新