(以下内容参考众多资料,如有不当之处请大神指点,谢谢!)
环境:ubuntu16.04;django2.0
静态文件,是指像css,js,images之类的文件,在Django里面静态文件的处理与一般的视图是不一样的。想要真正明白静态文件处理机制,最好仔细阅读分析staticfiles相关源码(了解中)
一、概述(区分开发环境和生产环境)
(一)生产环境(一般指程序部署在nginx、Apache等Web服务器上)
静态文件交由Web服务器处理,Django本身不处理静态文件。简单的处理逻辑如下:
URI请求-----> 按照Web服务器里面的配置规则先处理
|---------->如果是静态文件,则由web服务器直接处理
|---------->如果不是则交由Django处理,Django根据urls.py里面的规则进行匹配
特别提示:在生产环境下,为了安全,务必要把setting.py文件中的DEBUG设置为False(DEBUG = False)。当DEBUG=False时,staticfiles将自动关闭(即django本身不再处理静态文件,更确切地说staticfiles以另一种方式运行)。
(二)开发环境(一般指程序部署在自带的Web服务器上)
特别提示