我正尝试从第一次使用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'),
)
我在这里想念什么?
答案 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
的文件夹。