为啥 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?