让应用程序确定它是否在Heroku上运行

让应用程序确定它是否在Heroku上运行,heroku,environment-variables,Heroku,Environment Variables,我遇到了这样的情况:我正在开发的应用程序需要确定它是在Heroku上运行还是在本地运行。(旁注,但Heroku上的Imagemagick似乎不尊重-format选项,因此返回的结果与本地开发不同。与问题不完全相关) Heroku上是否有任何本机环境变量可供应用程序用于确定 我已经通过Heroku的文档进行了大量的搜索和阅读,但是我没有找到任何关于这方面的信息 谢谢 您可以使用许多启发式方法来确定是否以合理的精度在Heroku上运行,但它们大多是黑客(查看目录结构等)。我不知道系统提供了任何简单的

我遇到了这样的情况:我正在开发的应用程序需要确定它是在Heroku上运行还是在本地运行。(旁注,但Heroku上的Imagemagick似乎不尊重-format选项,因此返回的结果与本地开发不同。与问题不完全相关)

Heroku上是否有任何本机环境变量可供应用程序用于确定

我已经通过Heroku的文档进行了大量的搜索和阅读,但是我没有找到任何关于这方面的信息


谢谢

您可以使用许多启发式方法来确定是否以合理的精度在Heroku上运行,但它们大多是黑客(查看目录结构等)。我不知道系统提供了任何简单的“this is Heroku”环境变量

在这种情况下,“正确”的做法是实际确定与应用程序相关的功能差异,然后专门测试这些差异。例如,如果您完全担心Imagemagick的工作方式不同,那么您应该找出它工作方式不同的原因并进行测试(是否缺少必需的库?Heroku是否使用不同的版本?等等),即使您部署到另一台不是Heroku但有相同问题的主机上,您的应用程序也会发现这一点


如果这不是一个选项,您可以随时使用
heroku config

设置任何您喜欢的环境变量。是的,我发现Imagemagick的处理方式有很多不同。但在进一步阅读之后,它已经足够直接地使用config设置env var,并在应用程序中对此进行测试。