问题:
我有一个Rails应用,该应用通过rails-latex
gem生成pdf。它在rails s
和heroku 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}
结论:
我真的很茫然,因为我无法获得更多信息来调试或将错误复制到其他任何地方。
答案 0 :(得分:0)
以防万一有人偶然发现:
经过很多头痛之后,我发现包含tex软件包(在buildpack的README中指示)的文件的名称不正确,并且没有做任何事情,因此我试图使用不存在的软件包。
修复使我陷入了texlive-versions世界的另一个困境,但是通过各种版本声明和替换库的无情强迫,终于使我运行了Heroku应用。
如果您遇到类似的问题,建议删除所有tex依赖项,获取MWE,然后慢慢将其重新添加以识别邪恶的人。