【问题标题】:STATICFILES_DIRS error when trying to migrate tables - django heroku尝试迁移表时出现 STATICFILES_DIRS 错误 - django heroku
【发布时间】:2021-04-09 19:24:14
【问题描述】:

我已经尝试在 Heroku 上启动我的项目将近 2 天了!解决了很多问题,但现在由于静态文件错误,我似乎无法迁移新数据库。我在网站上的所有页面都在运行,除了一个页面,我收到了 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'),
]

和我的产品设置:导入操作系统

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/')

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

【问题讨论】:

标签: django heroku django-staticfiles heroku-postgres django-database


【解决方案1】:

您可以删除这些行:

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

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

【讨论】:

  • 删除适用于生产端的文件,但现在在我的本地开发端没有加载任何静态文件。知道如何解决这个问题吗?
【解决方案2】:

我也遇到过这种情况!

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

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

效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2020-08-24
    • 1970-01-01
    • 2015-03-31
    • 2016-10-03
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多