从这里我通过混合一些答案来获得帮助。在这里,我正在添加我的整个部分。[我这样做是为了初学者的帮助以及我将来的使用]
那么首先的问题是为什么Debug=False
需要!我将我的项目放在 AWS 中,由于内存泄漏,几个小时后连接超时。起初我想芹菜。[当然我只是一个初学者] 然后我把DEBUG=False
from DEBUG=True
As we can see the security warning in settings.py
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
一旦我这样做了,我的静态文件就没有在网页中成功加载。然后我到处搜索,首先从这里尝试使用 --insecure 命令来运行服务器。
python manage.py runserver --insecure
这是成功的,但我不希望我的项目在生产时使用不安全模式。作为正确的解决方案[根据我],我遵循了以下步骤。
首先,我更正了settings.py中的静态 URL、root 和 dir
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
然后通过命令收集静态文件
python manage.py collectstatic
现在第二步,[这里也提供了]首先在命令行中的项目目录中安装whitenoise
pip install whitenoise
然后在 settings.py 的中间件列表中添加“whitenoise.middleware.WhiteNoiseMiddleware”。
这应该添加到 'django.middleware.security.SecurityMiddleware' 的下方,以及所有剩余的中间件之上。这样您的中间件列表将如下所示:-
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', #after this line
'whitenoise.middleware.WhiteNoiseMiddleware', #add it exactlyhere
'django.contrib.sessions.middleware.SessionMiddleware', #before this
'...'
]
在已安装的应用程序顶部添加“whitenoise.runserver_nostatic”,这样您已安装的应用程序列表将如下所示:-
INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
'django.contrib.admin',
'django.contrib.auth',
'...'
]
完成,您现在可以在生产环境中提供静态文件了!![我也在我的本地环境中做过]
只需像往常一样使用 runserver 命令,没有不安全的或需要的任何东西。
python manage.py runserver
繁荣!!!它对我有用。
哈哈哈。我知道有点幼稚,但我现在很开心。
感谢所有在这里提供答案并帮助我工作的人。