Getting Katex fonts to load with Rails Asset Pipel

2019-03-06 13:18发布

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?

3条回答
做个烂人
2楼-- · 2019-03-06 13:45

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

查看更多
混吃等死
3楼-- · 2019-03-06 13:47

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.

查看更多
Juvenile、少年°
4楼-- · 2019-03-06 14:06

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.

查看更多
登录 后发表回答