STATICFILES_DIRS 尝试迁移表时出错 - django heroku

STATICFILES_DIRS error when trying to migrate tables - django heroku

我已经花了 2 天的时间在 Heroku 上启动我的项目了 ost!解决了很多问题,但现在由于静态文件错误,我似乎无法迁移新数据库。我在网站上的所有页面都在运行,除了一个页面,我收到了 500 错误。我打开调试以查看发生了什么,它需要迁移新数据库。

我运行命令

heroku run python manage.py migrate

但出现以下错误:

SystemCheckError: System check identified some issues:
ERRORS:
?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting. 

这是我的相关基本设置文件:

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__, os.pardir))))

STATIC_URL = '/static/'
# STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

和我的产品 settings:import os

from .base import *
import dj_database_url

DEBUG = True

ADMINS = [
    ('name', 'email')
    ]
try:
    SECRET_KEY = os.getenv('SECRET_KEY')
except:
    print("Error getting key")

ALLOWED_HOSTS = ['*']
DATABASES = {
    'default': {

    }
}

db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

如有任何帮助,我们将不胜感激!!让网站甚至能够使用静态文件进行部署一直是一个巨大的痛苦,现在我已经有了它,我不能因为它迁移我的数据库!谢谢!

您可以删除这些行:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

STATICFILES_DIRS 用于 STATIC_ROOT 之外的其他目录。您的 STATIC_ROOTSTATICFILES_DIRS 中的内容完全相同,因此不需要后者。删除它应该可以解决您的问题。

我也遇到过这种情况!

要解决,在路径中添加斜杠(/):

STATICFILES_DIRS = [os.path.join(BASE_DIR, '/static/')]

效果很好!