Django项目DEBUG=False时配置静态文件
Django项目在发布时,一般会设置:DEBUG = False,但这时系统不会自动给配置路由,需要我们手工配置,那么配置的方法如何呢?其实很简单,关键有两点:
关键点一:
在项目的urls.py文件中,添加:
from django.conf.urls import url, static from django.contrib import admin from django.urls import path from [项目名] import views, settings urlpatterns = [ url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'), ]
关键点在于url的路由转发,将路径带static的请求,全部按settings.STATIC_ROOT路径来,这里的settings.STATIC_ROOT也可以换成其他变量。
关键点二:
根据以上的引用,在settings.py文件中配置STATIC_ROOT:写法太多了,比如(当然以下语句前提是运行了命令:python manage.py collectstatic,将静态文件收集到了collect_static文件夹):
STATIC_ROOT = os.path.join(BASE_DIR, "collect_static")
或者:
STATIC_ROOT = os.path.join(BASE_DIR, "static")
更或者:
STATIC_ROOT = '/static/'
跟甚至:
STATIC_ROOT = 'static'
以上均可,以上写法均可实现静态资源加载。其关键点在于首先在urls.py中进行规则配置,其二,根据urls配置情况,设置其引用的变量路径。
html写法:
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{% static 'css/abc.css' %}"> </head> <body> <p class="red">dsfdsdfsdfs</p> </body> </html>