MathJax gem 真的有用吗?

Is the MathJax gem really useful?

我想在 Rails 项目中整合数学方程式。我看到有一个维护良好的 MathJax gem (https://rubygems.org/gems/mathjax-rails/versions/2.5.1). On the webpage of this gem, there is a section called "Why bother with another gem?", which argues mainly that MathJax is huge and makes it difficult to manage the project when it is entirely installed in a subdirectory of a rails project. However, on the MathJax webpage (http://docs.mathjax.org/en/latest/start.html) 我看到 MathJax 可以通过 CDN 使用,所以我想没有必要将其源代码下载到 Rails项目(也许 gem 是在需要下载 MathJax 的时候制作的?)。

所以我的问题是:使用 gem 而不是定义我自己的几个助手从 CDN 获取 MathJax 并根据我的需要配置它是否有我遗漏的优势?

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

但是,使用 CDN 会为您的应用添加部分故障模式:当您的应用服务器 returns 您的 HTML 但 CDN 已关闭或无法访问 MathJax 资产时会发生什么情况?您的用户将看到 TeX 代码而不是渲染的方程式。

这很不寻常,但可能会发生。有时 CDN 坏了,其他时候 user's ISP screws up their DNS to the CDN 但不是你的应用程序。

这是否是值得防范的风险取决于您的应用程序、您的用户等。

您可以通过自己托管 mathjax(应用程序服务器或 CDN)来避免它,但设置起来会更麻烦,如果您使用的是 CDN,您仍然会遇到这些部分故障。

如果您真的希望每次您的应用提供页面时都呈现方程式,请查看添加到 MathJax and KaTeX recently. I'm not aware of a gem bundling this up yet for rails but it'd be cool to have. There's a mathjax node server/service you could send requests to from rails (cache the requests), but that'll complicate deployment if you're used to having a single app. There's also someone calling KaTeX through execjs.

的服务器端呈现选项 (nodejs)