【问题标题】:Django Heroku not serving static files when Debug=False当 Debug=False 时 Django Heroku 不提供静态文件
【发布时间】:2019-06-01 06:32:55
【问题描述】:

我在 Heroku 上托管我的 Django 应用程序,并使用 whitenoise 来处理静态文件。

以下是settings.py

的内容
DEBUG = False

ALLOWED_HOSTS += [
    'example.com',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    ...
]

STATIC_URL = '/static/'

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

STATIC_ROOT = os.path.join(BASE_DIR, 'static_cdn', 'static_root')

但静态文件不起作用。

设置Debug=True 提供静态文件,但在Debug=False 时不提供。

【问题讨论】:

    标签: django heroku whitenoise


    【解决方案1】:

    Whitenoise 中间件应该来自after the security middleware and before all other middleware。您目前正在将其添加到末尾。

    【讨论】:

    • 如果您尝试过,请更新您的原始问题以显示当前代码。确保您已提交并推送更改。
    【解决方案2】:

    从post 获得解决方案

    将collectstatic 添加到Procfile

    web: python manage.py collectstatic --no-input; gunicorn myapp.wsgi --log-file - --log-level debug
    

    现在每个静态文件都在提供服务,包括 CSS、js、图像和视频。

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2012-11-27
      • 2019-12-02
      • 2018-08-24
      • 2016-11-26
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 2016-01-13
      相关资源
      最近更新 更多