问题描述:
Django开发网页在 Debug=True 模式下可以正常访问时,切换为False后,页面格式就乱了,即无法请求到静态资源了
解决方法:
第一种:
1、设置项目 settings.py
增加 STATIC_ROOT
修改 STATICFILES_DIRS
1 STATIC_URL = '/static/' 2 STATICFILES_DIRS = [ 3 os.path.join(BASE_DIR,"/static/") ##增加/,原来是:os.path.join(BASE_DIR,"static") 4 ] 5 #debug改为false后新增 6 STATIC_ROOT = 'static'# 新增行
2、配置 urls
导入 static、settings、views
配置 static路径
配置异常页面
1 from django.urls import path 2 from django.conf.urls import url 3 from .views import * 4 #以下是将debug改为False后需要加入的 5 #from django.conf.urls import url 6 from django.views import static 7 from django.conf import settings 8 from . import views 9 10 11 app_name = 'appname' 12 urlpatterns = [ 13 path('', login, name='login'), 14 path('index/', index, name='index'), 15 path('archives/<int:year>/<int:month>/',archive, name='archive'), 16 path('platforms/<str:id>/',platform, name='platform'), 17 18 ...... 19 20 21 #增加处理识别静态资源 22 url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'), 23 24 ] 25 26 27 28 # 配置异常页面 29 handler403 = views.page_permission_denied 30 handler404 = views.page_not_found 31 handler500 = views.page_inter_error
如果设置后,登陆admin后台时还是会出现页面混乱,最好是在项目总路由 urls.py下配置static路径!
3、设置 views.py
1 def page_permission_denied(request): 2 from django.shortcuts import render 3 return render(request, '403.html') 4 5 6 def page_not_found(request): 7 from django.shortcuts import render 8 return render(request, '404.html') 9 10 11 def page_inter_error(request): 12 from django.shortcuts import render 13 return render(request, '500.html')
这种方式修改后,发现日期控件没了???
另一种方式好像更简单:
启动服务时添加参数 --insecure (不稳定)
python manage.py runserver --insecure 0.0.0.0:8000