在Heroku上调试rails-latex gem | ActionView :: Template :: Error rails-latex失败

时间:2019-02-20 14:55:37

标签: ruby-on-rails ruby heroku rubygems

问题:

我有一个Rails应用,该应用通过rails-latex gem生成pdf。它在rails sheroku local上正常工作。 但是,尝试在Heroku上使用pdf-generation-link会抛出We're sorry, but something went wrong.

使用heroku logs --tail会给我带来好处:

Rendered sheets/show.pdf.erb within layouts/application (3.4ms)
Running 'pdflatex -halt-on-error -shell-escape -interaction=batchmode input' in /app/tmp/rails-latex/4--3678030941334020140 1 times...
Completed 500 Internal Server Error in 59ms (ActiveRecord: 5.6ms)
ActionView::Template::Error (rails-latex failed: See /app/tmp/rails-latex/4--3678030941334020140/input.log for details):
19:
20: \end{document}
app/views/layouts/application.pdf.erbtex:22:in `_app_views_layouts_application_pdf_erbtex___[LOTS OF NUMBERS]

同样,Heroku应用程序的其余部分和本地版本都可以正常工作,因此这对模型等来说不是问题。

teX带有反编译安装(推送时安装显示为成功)。 heroku buildpacks是:

1. heroku/ruby
2. https://github.com/Thermondo/heroku-buildpack-tex.git

我尝试过的事情:

我试图访问错误消息中引用的文件,但是(我认为是由于Herokus dyno系统的缘故)app/tmp不存在或至少不能由heroku run bash控制台访问。

日志中引用的布局文件包含:

\documentclass[12pt,a5paper,sloppy]{article}
<% @latex_config = { :recipe => [
	{:command => 'pdflatex'},
]} # you can override the defaults if you wish; see LatexToPdf#config
%>
\usepackage{filecontents}
\usepackage{lastpage}
\usepackage{graphics}
\usepackage[utf8]{inputenc}
\usepackage{scrextend}
\usepackage[a5paper, left=.3cm, right=.3cm, bottom=0cm, top=0.3cm]{geometry}

\setlength\parindent{0pt}
\thispagestyle{empty}

\begin{document}

	<%= yield %>

\end{document}

结论:

我真的很茫然,因为我无法获得更多信息来调试或将错误复制到其他任何地方。

1 个答案:

答案 0 :(得分:0)

以防万一有人偶然发现:

经过很多头痛之后,我发现包含tex软件包(在buildpack的README中指示)的文件的名称不正确,并且没有做任何事情,因此我试图使用不存在的软件包。

修复使我陷入了texlive-versions世界的另一个困境,但是通过各种版本声明和替换库的无情强迫,终于使我运行了Heroku应用。

如果您遇到类似的问题,建议删除所有tex依赖项,获取MWE,然后慢慢将其重新添加以识别邪恶的人。