[英]Why do Chrome & Firefox slowly render my home page using MathJax?
[英]Ruby on Rails & MathJax - how do I force page reload so my mathjax will render?
我正在使用 rails v6.0.3.2 和 ruby 2.7.1。 我将文本放入 ActionText 富文本框中。 当页面首次加载时,我的 mathjax 没有呈现。 如果我刷新页面,它就会呈现。 我需要(1)确保mathjax在页面首次加载时呈现,或者(2)强制重新加载页面。 显然前者更好。
我在这里的 mathjax 文档中读到,我可以使用以下 javascript(我放入我的 application.js)来完成前者(但它不起作用):
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-MML-AM_CHTML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
在我的 application.html.haml 视图中,我加载了 mathjax CDN 以及一些代码以启用单美元符号表示法:
:plain
<!-- MathJax -->
<!-- This implements single $ as a delimiter -->
<!-- This MUST come before the CDN reference below -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true}
});
</script>
<!-- Mathjax: latest CDN version -->
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-MML-AM_CHTML">
</script>
如何启用 mathjax 的“动态”渲染,或者在页面首次加载时强制刷新页面?
我的新答案
我想我找到了一个更好的答案来解决我的问题。 按照这个SO 建议,我在更新后使 rails 缓存无效(使用 after_action 回调)。 它现在似乎在重新处理 mathjax 而不破坏已经存在的东西。
我以前的回答
在这里阅读 turbolinks 文档,我了解到我可以在我的 application.html.haml 文件中插入以下元标记来强制页面重新加载:
<head>
...
<meta name="turbolinks-visit-control" content="reload">
</head>
实际上这是haml版本: %meta{:content => "reload", :name => "turbolinks-visit-control"}/
问题是,如果我编辑一个已经存在 mathjax 的页面,分隔符会被剥离,我必须在编辑过程中重新输入它们(这使得它非常痛苦)。 在我添加元标记之前,这并没有发生。
我可以容忍这一点,但如果有人能提出更好的方法,我会全力以赴。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.