【问题标题】:Is it possible to install Freetype or Fontconfig on Heroku?是否可以在 Heroku 上安装 Freetype 或 Fontconfig?
【发布时间】:2012-06-20 10:11:19
【问题描述】:

我正在尝试让 phantom.js 在 heroku 上运行,到目前为止,我已经成功启动了一个自定义 buildpack 并运行了二进制文件。

但是,为了正确渲染,我还需要安装 Freetype 和 Fontconfig。 Heroku 似乎没有它们,我想知道这是否可行,或者我是否需要放弃此选项并找到其他解决方案。

有人知道怎么做吗?谢谢。

【问题讨论】:

    标签: heroku phantomjs freetype fontconfig


    【解决方案1】:

    另一种可能对您有用的方法是在您的应用运行的测功机上安装必要的字体作为系统字体。

    简而言之:将每个字体文件中的相关符号链接放入 ~/.fonts/ 在应用程序启动时

    然后,在应用程序的 vendor/fonts 文件夹中收集您需要的 TTF,版本受控且整洁。

    如果您要使用 Ruby on Rails,您可以完全按照以下方式进行操作,但在您的 Node.js 环境中也可能非常可行。

    This Rails-oriented blog post details the thing 但这里是作为初始化程序的相关代码,您可以调用 config/initializers/system_fonts.rb:

    if Rails.env.production?
      font_dir = File.join(Dir.home, ".fonts")
      Dir.mkdir(font_dir) unless Dir.exists?(font_dir)
    
      Dir.glob(Rails.root.join("vendor", "fonts", "*")).each do |font|
        target = File.join(font_dir, File.basename(font))
        File.symlink(font, target) unless File.exists?(target)
      end
    end
    

    【讨论】:

      【解决方案2】:

      也许您可以简单地使用第三方提出的 phantomjs buildpack。你可以在这里找到:https://devcenter.heroku.com/articles/third-party-buildpacks 一些第三方 buildpack。其中之一是phantomjs。这个 buildpack 已经包含了 Freetype 和 Fontconfig!

      【讨论】:

      • 谢谢。我已经在使用它,并且运行良好。但这不是问题。问题是某些页面字符中断,因为未安装 Freetype 和 Fontconfig。 buildpack 只设置环境,不安装 Freetype 和 Fontconfig。
      • 你知道渲染需要哪些 Freetype 和 Fontconfig 二进制文件吗?
      【解决方案3】:

      Heroku 不支持基于每个应用程序“安装”二进制文件。相反,它遵循dependency isolation 的十二因素原则,该原则建议所有依赖项都是应用程序的包。因此,您将在应用程序结构中包含 Freetype 和 Fontconfig 箱,并调整 PATH 以包含此目录。

      【讨论】:

      • 瑞恩,谢谢你的回答。您能否让我知道这是否是一般性建议,或者您之前是否成功安装过 Freetype 和 Fontconfig。谢谢!
      • 我还没有尝试过使用 Freetype 或 Fontconfig。您知道渲染所需的特定二进制文件/可执行文件吗?
      【解决方案4】:

      根据https://devcenter.heroku.com/articles/cedar-ubuntu-packages,fontconfig 应该(现在)在 Cedar-10- 和 Cedar-14-stack 上都可用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-19
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 1970-01-01
        • 2012-05-15
        • 2019-06-29
        相关资源
        最近更新 更多