2

我有一个使用 MathJax 的 Rails4 应用程序。<head>我通过在我的 app/views/layouts/application.html.erb 文件的部分中放置以下行来使用 MathJax CDN :

<script type="text/javascript" src="path-to-mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

更多信息:http ://docs.mathjax.org/en/latest/start.html#mathjax-cdn

由于 Turbolinks,MathJax 仅在主页上加载,除非我刷新页面(这是不可取的),否则不会在其他页面上加载。相反,我希望 MathJax 仅在 /Math/New 和 Physics/Show 页面上加载。我应该怎么办?(我不想停用 turbolinks)

非常感谢你的帮助。

4

3 回答 3

5

自最近几天以来,我也在为同样的问题而苦苦挣扎。终于想出了解决这个问题的方法。这是相同的解释:

如果您正在编写一个动态网页,其中包含数学的内容可能会在 MathJax 已经排版页面的其余部分之后出现,那么您需要告诉 MathJax 在生成新内容时再次在页面中查找数学。为此,您需要使用该MathJax.Hub.Typeset()方法。这将导致预处理器(如果已加载)再次在页面上运行,然后 MathJax 将在页面上查找未处理的数学并对其进行排版,而任何已排版的数学都保持不变。

所以最简单的解决方案是在 app/views/layouts/application.html.erb 文件中添加以下内容:

<script>
      MathJax.Hub.Typeset();
</script>

不要在头部添加这个。关闭body标签后添加。

于 2013-12-26T11:10:33.950 回答
0

在这里可以找到三个很好的解决方案:http ://reed.github.io/turbolinks-compatibility/mathjax.html

于 2013-12-26T12:34:02.743 回答
0

您可以仅为该链接添加 data-no-turbolink 以使其作为常规链接工作,请查看https://github.com/rails/turbolinks/#opting-out-of-turbolinks

于 2013-11-04T17:58:27.967 回答