1

I'm integrating the Katex math formula rendering library into a Rails 3.2 app but the font assets keep returning a 404 error message:

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"):

I placed all of the fonts in the vendor/assets/fonts directory.

Without manipulating the third party JS or CSS files, how do I go about solving this?

Joshua Pinter
  • 45,245
  • 23
  • 243
  • 245

3 Answers3

2

It turns out that all of the assets are compiled into the public/assets directory instead of being separated like public/assets/fonts, which is what Katex is expecting.

However, subdirectories of these "main" directories are retained so I moved the Katex fonts to the following directory instead:

vendor/assets/fonts/fonts/

Now the public/assets directory contains a fonts directory and the path /assets/fonts/KaTeX_Math-Italic.woff gets served just fine.

I don't like having a fonts/fonts directory so let me know if there's a more elegant way to solve this that doesn't involve manipulating the third party JS or CSS assets.

Joshua Pinter
  • 45,245
  • 23
  • 243
  • 245
  • Just put `fonts/*.ttf` into `app/assets/images/fonts/*.ttf` for dev env. This works for me. – Lane Jan 17 '19 at 00:11
0

I've made the katex gem works with Rails. It also provides server-side rendering (via ExecJS).

glebm
  • 20,282
  • 8
  • 51
  • 67
0

Thanks guys. /fonts/fonts works for me but still have another problem when I refresh page, the fonts suddenly disappear and appear again.

I found a solution, why not put fonts/*.ttf into app/assets/images/fonts/*.ttf for dev env?

At the same time keep config/environments/development.rb still the default config.serve_static_assets = false false value.

This works for me.

Lane
  • 4,682
  • 1
  • 36
  • 20