DEBUG=False时静态文件无法加载问题的解决。
1、问题描述
在正式部署到服务器之前,设置settings.py中的参数DEBUG=False,此时启动django服务,但无法加载静态文件。 环境是Python3.6与Django2.1,
2、原因分析
出现的问题根本原因是:当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;但是当我们设置DEBUG = False后,这一功能便没有了,此时静态文件就会出现加载失败的情况,想要让静态文件正常显示,我们就需要配置静态文件服务。
3、解决方案
对web_02\setting.py进行修改:
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from django.views import static #新增
from django.conf import settings #新增
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include('pages.urls')),
url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'), #新增
]
注意,配置静态文件服务后,无论是在本机启动django还是在服务器上启动,都需要先运行如下命令,生成静态文件目录。
python manage.py collectstatic