3

我知道有很多关于这个问题的主题,但我没有发现这些有帮助。

我正在尝试在 Heroku 上推送我的 Django 应用程序,但在传输过程中,我收到:ModuleNotFoundError : No module named 'dashboard_app.settings'

当构建尝试运行时会发生这种情况:python manage.py collecstatic

我重命名了应用程序目录,但更改了设置中的所有内容。一切都在本地运行良好,甚至是collectstatic命令(您可以在下图中看到静态文件)。我整个下午都在尝试解决这个问题,但没有任何成功......

更多信息: 在此处输入图像描述

管理.py

    #!/usr/bin/env python
    import os
    import sys

    if __name__ == "__main__":
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard_app.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

设置.py

    # Static files

    if os.environ.get('PRODUCTION') == 'True':

    PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

    STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')

    # Extra places for collectstatic to find static files.
    STATIC_DIRS = (
        os.path.join(PROJECT_ROOT, 'static')
    )

    MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    ]

    if os.environ.get('PRODUCTION') == 'True':

    # Simplified static file serving
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

    ROOT_URLCONF = 'dashboard_app.urls'

wsgi.py


    import os

    from django.core.wsgi import get_wsgi_application

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard_app.settings")

    application = get_wsgi_application()

如果有人可以帮助我解决这个问题,我将不胜感激!

4

1 回答 1

1

在heroku上删除并创建另一个应用程序之后。我在推送之前将静态文件本地化,现在它工作得很好...... :)

于 2018-05-13T10:57:02.697 回答