使用Rails Asset Pipeline加载Katex字体

时间:2015-04-06 16:59:23

标签: ruby-on-rails fonts asset-pipeline katex

我正在将Katex数学公式渲染库集成到Rails 3.2应用程序中,但字体资产会一直返回404错误消息:

Started GET "/assets/fonts/KaTeX_Math-Italic.woff"
Served asset /fonts/KaTeX_Math-Italic.woff - 404 Not Found (3ms)

ActionController::RoutingError (No route matches [GET] "/assets/fonts/KaTeX_Math-Italic.woff"):

我将所有字体放在vendor/assets/fonts目录中。

如果不操纵第三方JS或CSS文件,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

事实证明,所有资产都被编译到public/assets目录中,而不是像public/assets/fonts那样分开,这就是Katex所期望的。

然而,这些" main"的子目录保留目录 ,因此我将Katex字体移动到以下目录:

vendor/assets/fonts/fonts/

现在public/assets目录包含fonts目录,路径/assets/fonts/KaTeX_Math-Italic.woff可以正常使用。

我不想拥有fonts/fonts目录,所以请告诉我是否有一种更优雅的解决方法,不会涉及操纵第三方JS或CSS资产。

答案 1 :(得分:0)

我已经让katex gem与Rails一起使用了。 它还提供服务器端呈现(通过ExecJS)。

答案 2 :(得分:0)

谢谢大家。 /fonts/fonts对我有用,但是在刷新页面时仍然有另一个问题,字体突然消失并再次出现。

我找到了解决方案,为什么不将fonts/*.ttf放入开发环境的app/assets/images/fonts/*.ttf中呢?

同时将config/environments/development.rb保留为默认的config.serve_static_assets = false假值。

这对我有用。