使用Mojolicious生成PDF遇报错求助:找不到render_partial方法
解决Mojolicious中"Can't locate object method 'render_partial'"报错
嘿,这个问题我之前碰过好几次,根源很明确:你找到的示例代码是基于旧版Mojolicious写的,而你当前安装的新版本已经把render_partial这个方法废弃并移除了,取而代之的是render_to_string方法。
给你一步步的解决办法:
替换废弃的方法调用
直接把代码里所有的render_partial改成render_to_string就行,参数用法几乎完全一致。举个例子:
原来的代码:my $pdf_content = $self->render_partial('pdf_template', format => 'html');修改后:
my $pdf_content = $self->render_to_string('pdf_template', format => 'html');确认你的Mojolicious版本
你可以跑这条命令看看当前装的版本:perl -MMojolicious -e 'print $Mojolicious::VERSION'大概从Mojolicious 5.0开始,
render_partial就被标记为“过时”,到6.0之后就彻底删掉了。你的Ubuntu 16.04自带Perl 5.22.1,不管是用apt装的还是cpan装的Mojolicious,版本大概率已经跳过了支持render_partial的阶段。重新测试PDF生成
改完方法之后,重新运行代码,先确认模板能正常渲染出HTML内容,再检查后续转PDF的步骤(比如你用的wkhtmltopdf或者其他转换工具)有没有问题。
如果改完还是有问题,你可以把相关的代码片段贴出来,我再帮你排查细节~
内容的提问来源于stack exchange,提问作者Memo R
相关产品推荐
相关产品推荐

