使用 Rails Asset Pipeline 加载 Katex 字体

Getting Katex fonts to load with Rails Asset Pipeline

我正在将 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 文件的情况下,我该如何解决这个问题?

事实证明,所有资产都被编译到 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 资产。

我已将 katex gem 与 Rails 一起使用。 它还提供 server-side 渲染(通过 ExecJS)。

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

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

同时保持config/environments/development.rb默认config.serve_static_assets = false假值。

这对我有用。