是否可以在Heroku上安装Freetype或Fontconfig?

时间:2012-06-20 10:11:20

标签: heroku phantomjs freetype fontconfig

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

但是,似乎为了正确呈现内容,我还需要安装Freetype和Fontconfig。 Heroku似乎没有它们,我想知道这是否可行,或者我是否需要废弃此选项并找到另一种解决方案。

有谁知道怎么做?谢谢。

4 个答案:

答案 0 :(得分:1)

可能适用于您的另一种方法是在运行应用程序的dyno上安装必要的字体作为系统字体。

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

然后,收集您需要的TTF,比如应用程序的vendor / fonts文件夹,版本控制和整洁。

如果您使用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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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