我正在尝试让phantom.js在heroku上工作,到目前为止,我已经成功启动了一个自定义buildpack并运行二进制文件。
但是,似乎为了正确呈现内容,我还需要安装Freetype和Fontconfig。 Heroku似乎没有它们,我想知道这是否可行,或者我是否需要废弃此选项并找到另一种解决方案。
有谁知道怎么做?谢谢。
答案 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(现在)。