将Django应用程序部署到heroku-无法找到文件

时间:2018-07-23 11:06:29

标签: django heroku

我在heroku上运行django应用程序时遇到问题。它已成功部署,但是在查找各种文件时存在一些问题。

news.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
url_path = BASE_DIR + '/marketdata/news/'

可以在本地工作,但是当我将其部署到heroku时,它说找不到文件

  

异常值:[Errno 2]没有这样的文件或目录:   '/app/artemis/static/marketdata/news/bloomberg_news.csv'例外   位置:save_to_csv中的/app/artemis/static/marketdata/news.py,行   16

这是我的项目结构

enter image description here

任何想法如何解决?任何提示将不胜感激!

编辑: 如果我在heroku上检查我的项目结构,则 news 文件夹根本不存在。这与它只包含.csv文件有关吗?

2 个答案:

答案 0 :(得分:1)

我找到了解决我遇到的问题的方法:

  • 在提交到heroku之前,我没有运行python manage.py collectstatic
  • 另一个问题是我的 procfile 。将其更改为:web: gunicorn myproject.wsgi  解决了我的问题

答案 1 :(得分:-1)

如果您尚未执行此操作,请阅读并遵循步骤https://devcenter.heroku.com/articles/deploying-python

您可能有,但为以防万一,请您发布以供参考。因此,这些文件位于您的静态区域内。关于静态文件,Heroku有点有趣。我回答的另一个问题很可能与您的问题https://stackoverflow.com/a/51373830/4954874有关。

您遇到的问题是找不到文件,因为该文件位于您的静态目录中,而该目录又通过使用/static/找到,该文件允许heroku找到它。我相信,如果您执行类似/static/marketdata/news/的操作,它将可以正常工作。