为啥 Heroku 不喜欢我的文件夹结构?

Posted

技术标签:

【中文标题】为啥 Heroku 不喜欢我的文件夹结构?【英文标题】:Why doesn't Heroku like my folder structure?为什么 Heroku 不喜欢我的文件夹结构? 【发布时间】:2020-02-22 03:58:34 【问题描述】:

所以当我在我的 PC 上运行它时,这个 Discord Bot 工作得非常好。但是当我将它推送到 Heroku 时,我得到以下错误日志。 当我尝试删除render.py 中的 "Styles"(下面的日志中提到的部分)时,Bot 会上线但无法正常工作(当然)。

heroku[worker.1]: Starting process with command python src/main.py
heroku[worker.1]: State changed from starting to up
heroku[worker.1]: Process exited with status 1
heroku[worker.1]: State changed from up to crashed
app[worker.1]: Traceback (most recent call last):
app[worker.1]:   File "src/main.py", line 9, in <module>
app[worker.1]:     from render import RenderStats
app[worker.1]:   File "/app/src/render.py", line 6, in <module>
app[worker.1]:     class RenderStats():
app[worker.1]:   File "/app/src/render.py", line 29, in RenderStats
app[worker.1]:     'titles': ImageFont.truetype("fonts/MyriadPro-Bold.otf", 10),
app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/PIL/ImageFont.py", line 546, in truetype
app[worker.1]:     return freetype(font)
app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/PIL/ImageFont.py", line 543, in freetype
app[worker.1]:     return FreeTypeFont(font, size, index, encoding, layout_engine)
app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/PIL/ImageFont.py", line 161, in init
app[worker.1]:     font, size, index, encoding, layout_engine=layout_engine
app[worker.1]: OSError: cannot open resource

是文件夹结构有问题吗?

【问题讨论】:

【参考方案1】:

Heroku 不是为托管 Discord Bot 而设计的,但要回答您的问题,问题可能是 Heroku 的 ephemeral filesystem。正如 Heroku 解释的 here,您可能会托管专用的静态文件(例如字体),它们可能会在 Herokus 每天 cycling 上被删除。

【讨论】:

以上是关于为啥 Heroku 不喜欢我的文件夹结构?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的静态文件在部署到 Heroku 服务器时没有提供? (姜戈)

为啥 heroku 在我的路由文件中运行此代码,而该代码只能在开发模式下运行?

为啥我不应该将 virtualenv 推送到 Heroku?

为啥我的 tasks.loop 在 Heroku 上不起作用?

为啥 tsc 不在 Heroku 中运行?

是否可以将简单的 html 和 javascript 文件结构上传到 heroku?