MathJax gem真的有用吗?

时间:2015-11-04 20:12:35

标签: ruby-on-rails ruby gem mathjax

我想在Rails项目中集成数学方程式。我看到有一个维护良好的MathJax gem(https://rubygems.org/gems/mathjax-rails/versions/2.5.1)。在这个gem的网页上,有一个名为“为什么要打扰另一个gem?”的部分,主要是说MathJax很庞大,当项目完全安装在rails项目的子目录中时很难管理它。但是,在MathJax网页(http://docs.mathjax.org/en/latest/start.html)上,我看到MathJax可以通过CDN获得,所以我猜不需要将其源代码下载到Rails项目中(也许宝石是在它的时候制作的。需要下载MathJax吗?)。

所以我的问题是:我是否缺少使用gem的优势,而不是定义我自己的几个助手来从CDN获取MathJax并根据我的需要进行配置?

1 个答案:

答案 0 :(得分:1)

假设一切正常,我认为CDN是最好最简单的方法。他们提供说明,它是免费的,它应该降低你的应用程序库的性能和部署成本,如果有什么不起作用,它将更容易获得帮助,因为你没有做任何框架特定的。

但是,使用CDN会为您的应用添加部分失败模式:当您的应用服务器返回HTML时会发生什么,但是对于MathJax资产,CDN是关闭还是无法访问?您的用户将看到TeX代码而不是渲染的方程式。

这很不寻常,但可能会发生。有时候CDN会被破坏,有时会user's ISP screws up their DNSCDN而不是你的应用。

这是否值得防范,取决于您的应用,用户等等。

你可以通过自己托管mathjax(app server或CDN)来避免它,但是设置起来会更多,如果你使用的是CDN,你仍然可以获得这些部分失败。

如果你真的希望每次你的应用程序服务页面时渲染方程式,请查看最近添加到MathJax和KaTeX的服务器端渲染选项(nodejs)。我不知道有一个宝石捆绑这个还有铁路,但它很酷。有一个mathjax node server/service您可以从rails发送请求(缓存请求),但如果您习惯使用单个应用程序,则会使部署复杂化。还有一个人calling KaTeX through execjs