2015-11-04 44 views
0

我想在Rails項目中整合數學方程。我看到有一個維護良好的MathJax gem(https://rubygems.org/gems/mathjax-rails/versions/2.5.1)。在這種寶石的網頁,有一個叫「爲什麼與其他寶石煩?」部分,主要認爲MathJax是巨大的,因此很難管理項目時,它完全安裝在Rails項目的子目錄。然而,在MathJax網頁(http://docs.mathjax.org/en/latest/start.html)我看到,MathJax可通過CDN,所以我想沒有必要下載其源入Rails項目(也許是寶玉在同一時間做時,它是需要下載MathJax ?)。MathJax寶石真的有用嗎?

所以我的問題是:有,我很想念使用寶石,而不是定義我自己的幾個助手從CDN得到MathJax並配置它爲我需要的,具有優勢?

+1

你問我們給我們的意見,你需要的東西是否有用。我們不知道你的需求,除非你想整合數學方程。我們不知道您的編程能力或專業知識。您需要決定是否要在其中一方工作,嘗試實施它,並在遇到問題時詢問具體問題。 –

回答

1

假設所有工作上的事情,我認爲CDN是最好的,最簡單的方法。他們給出了指示,它是免費的,它應該會降低應用程序庫的性能和部署成本,並且如果有什麼不起作用,由於您沒有做任何特定於框架的事情,因此獲得幫助會更容易。

但是,使用CDN增加了局部故障模式,以您的應用程序:當你的應用服務器返回的HTML會發生什麼,但CDN停機或無法訪問的MathJax資產?您的用戶將看到TeX代碼而不是渲染的方程式。

這是非常不尋常的,但可能發生。有時,CDN被打破,其他時間user's ISP screws up their DNSCDN而不是你的應用程序。

這是否是一個值得風險抵禦取決於您的應用,用戶等

您可以通過託管mathjax自己(應用服務器或CDN)避免它,但它會是更多的工作,以建立,如果你使用CDN,你仍然可以得到這些部分失敗。

如果你真的想讓方程在你的應用程序每次服務頁面時渲染,請查看最近添加到MathJax和KaTeX的服務器端渲染選項(nodejs)。我還沒有意識到這款產品可以捆綁到軌道上,但它會很酷。有一個mathjax node server/service你可以從軌發送請求(緩存請求),但如果你已經習慣了具有單一的應用程序,將複雜的部署。還有人calling KaTeX through execjs