【发布时间】:2016-01-22 20:46:05
【问题描述】:
我正在使用我的 Rails 4.2 应用程序生成一个 markdown 文档,其中包含位于同一服务器上的图像(在 public 文件夹中)。
使用 pandoc (pandoc-ruby 1.0.0),我想将文档转换成各种格式,特别是 HTML(在浏览器中预览)和 DOCX(下载)。
浏览器中的预览效果完美。但是在转换为 DOCX 时,图像不包括在内。我猜这是由于 pandoc 生成文档时对引用图像的多次请求。
我已经尝试将allow_concurrency 设置为true,但这并没有解决问题。此外,它发生在开发和生产环境中(在开发中,它需要很长时间,而在生产中则不会 - 可能是由于超时限制的一些差异?)。
我已经找到了一种方法来解决我的问题,方法是不使用 URL 引用图像,而是将其作为 base64 字符串嵌入到文档中。但这肯定不是首选的解决方案,因为它往往会使 HTML 文档膨胀很多。此外,在生产中,我已经从非常小的嵌入式图像中获得了RuntimeError (Stack space overflow: current size 8388608 bytes)。所以我必须找到一个真正的解决方案。
【问题讨论】:
-
你是对的,这解决了问题。谢谢!知道问题出在哪里还是很有趣的。
-
您使用的是最新的 pandoc 版本吗?我记得曾经有过 docx 和远程图像的问题......无论如何,直接从磁盘中获取它们会更有效......
标签: ruby-on-rails concurrency pandoc