在Heroku(Windows)上部署django项目:

时间:2020-08-16 14:14:14

标签: python django heroku

我正尝试从第一次使用Heroku部署Django应用。但是我的应用程序总是返回应用程序错误。

当我检查heroku logs --tail时,我得到:

FileNotFoundError: [Errno 2] No such file or directory: '/app/CandiBot/logs/08/16.log'

我的项目的树形结构看起来像这样,我想我错过了一个名为myproject/的文件夹,但我想这个问题与此无关。

CandiEnv/ (venv)
├── Candiapp/ (app)
│   ├── models.py
│   ├── urls.py
│   ├── views.py
│   ├── ...
│   ├── static/
│   │    └──(empty)
│   └── logs/
│        └── 08/16.log  <-- Here is the log file
├── myproject/ (I don't know why I've named it differently)
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├──...
├── manage.py
└── Procfile

也许与我的settings.py有关。静态部分看起来像这样:

STATIC_URL = '/static/'
BASE_DIR= os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = ( #Not sure it's useful
    os.path.join(BASE_DIR, 'static'),
    )

我在这里想念什么?

2 个答案:

答案 0 :(得分:1)

这与您的静态文件无关。

您似乎正在尝试登录文件。由于其ephemeral filesystem,这在Heroku上不起作用:只要您的dyno重新启动,您的日志就会丢失。 happens frequently(每天至少一次)。

相反,simply write to stdout or stderr。 Heroku的记录器将收集该输出并将其与其他来源的日志合并。在Django上,这意味着setting up a StreamHandler而不是FileHandler

请注意,Heroku doesn't keep logs very long。考虑到您正在尝试写入以当前日期命名的文件,我怀疑您可能想挂在超过最新的1,500条消息/过去7天的消息上。在这种情况下,a logging addon是最简单的解决方案,而a log drain是最强大的解决方案。

答案 1 :(得分:0)

Git不能很好地处理空文件夹。

尝试删除 Failed to compile. ./node_modules/react-native-linear-gradient/index.android.js SyntaxError: D:\project\gradient\node_modules\react-native-linear-gradient\index.android.js: Unexpected token, expected "," (8:36) 6 | import { processColor, StyleSheet, View } from 'react-native'; 7 | > 8 | import NativeLinearGradient, { type Props } from './common'; | ^ 9 | 10 | const convertPoint = (name, point) => { 11 | if (Array.isArray(point)) { CandiEnv/Candispo/static/上的空文件夹。即使它具有文件扩展名,我也猜它是名称中带有08/16.log的文件夹。