让应用程序判断它是否正在Heroku上运行

3
我遇到了这样的情况,我正在开发一个应用程序,需要确定它是在Heroku上运行还是本地运行。(顺便说一下,在Heroku上使用Imagemagick似乎不尊重-format选项,因此返回的结果与本地开发不同。这与问题并不完全相关)。
在Heroku上是否有任何本机环境变量可供应用程序使用来确定这一点?
我已经做了很多搜索,并阅读了Heroku的文档,但我没有找到任何相关信息。
谢谢!
1个回答

3
有许多启发式方法可用于确定是否在Heroku上运行,并且具有合理的准确性,但它们大多是hack(查看目录结构等)。我不知道系统是否提供任何简单的“这是Heroku”环境变量。
在这种情况下,“正确”的做法是实际确定与您的应用程序相关的功能差异,然后专门测试这些差异。例如,如果您的关注点完全是Imagemagick的工作方式不同,则应找出为什么它的工作方式不同并进行测试(是否缺少所需库?Heroku使用不同版本等)。这样,即使您部署到另一个不是Heroku但存在相同问题的主机上,您的应用程序也会识别出来。
如果这不是选项,则始终可以使用heroku config设置任何环境变量。

嗯,我发现Imagemagick的处理方式有很多不同之处。但是经过进一步阅读后,通过配置设置环境变量并在应用程序中进行测试是非常直观的。 - Geuis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接