You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku上为Rails应用安装Poppler以实现Active Storage PDF预览?

在Heroku新栈上配置Active Storage PDF预览(Poppler)的问题

我想在Active Storage中启用PDF预览功能(参考Ruby on Rails官方文档中ActiveStorage::Preview相关内容)。本地Mac环境下通过brew install poppler安装了Poppler,同时在Gemfile中引入了Poppler gem,预览功能正常运行。但部署到Heroku时构建失败,报错如下:

An error occurred while installing gobject-introspection (4.0.5), and Bundler
       cannot continue.
       
       In Gemfile:
         poppler was resolved to 4.0.5, which depends on
           gio2 was resolved to 4.0.5, which depends on
             gobject-introspection

我尝试使用一款Poppler buildpack,但未解决问题。请问有没有人成功在较新的Heroku栈上安装Poppler?


解决方法

1. 更换适配新Heroku栈的Poppler buildpack

旧的buildpack可能不再兼容heroku-22或heroku-24这类新栈,建议改用维护活跃、适配新栈的Poppler buildpack:

  • 先移除已添加的旧buildpack:
    heroku buildpacks:remove 旧的Poppler buildpack名称或标识
    
  • 添加适配新栈的buildpack:
    heroku buildpacks:add 适配新栈的Poppler buildpack
    
    这类buildpack会自动在Heroku环境中安装正确版本的Poppler及依赖,避免编译错误。

2. 移除Gemfile中的Poppler gem(推荐方案)

其实Active Storage的PDF预览只需要系统级的Poppler工具(如pdftocairo),不需要引入Ruby的Poppler gem。移除该gem可以彻底规避gobject-introspection这类依赖的安装问题:

  • 打开Gemfile,删除gem 'poppler'行
  • 本地执行bundle install更新依赖锁定文件
  • 重新部署到Heroku,确保已添加正确的Poppler buildpack

3. 验证Poppler安装状态

部署完成后,通过Heroku控制台确认Poppler是否正常安装:

heroku run pdftocairo --version

如果返回版本信息,说明系统级Poppler已就绪,Active Storage的PDF预览功能即可正常工作。


内容的提问来源于stack exchange,提问作者Emmet Gibney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:25:17