本文介绍了当Debug = False时,Django Heroku不提供静态文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm hosting my Django application on Heroku and using whitenoise to handle serving static files.

以下是 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')

但是静态文件不起作用。

But static files are not working.

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

Setting Debug=True is serving static files but not when Debug=False.

推荐答案

collectstatic 添加到 Procfile

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

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

And now every static file is serving including, CSS, js, images and videos.

这篇关于当Debug = False时,Django Heroku不提供静态文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-10 13:30