django2.2 DEBUG=True/False时如何设置静态文件(image js css等)
Posted df888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django2.2 DEBUG=True/False时如何设置静态文件(image js css等)相关的知识,希望对你有一定的参考价值。
目录结构:
project
----templates
----app
----manage.py
添加静态资源,目录结构更新为:
project
----templates
----app
----static # 静态资源
--------img
--------js
--------css
----manage.py
以img举例,引用资源的代码为:
{% load static %}
<img src='{% static "img/favicon.png" %}'/>
DEBUG = True
django会自动调用django.views.static.serve()来自动找。
settings.py中指定STATICFILES_DIRS即可:
# settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'app/static/')
]
DEBUG = False
django不会自动找了,需要手动添加。
settings.py中指定STATIC_ROOT
# settings.py STATIC_URL = '/static/' STATIC_ROOT = 'static' # project根目录下 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'app/static/') ]
urls.py中手动调django.views.static.serve()
from django.views.static import serve urlpatterns = [ url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}) ]
此时访问还是会发现404,因为STATIC_ROOT是在deploy时,统一存放静态资源的目录,此时这个目录根本就没有文件,需要手动执行collectstatic来拷贝文件。
python manage.py collectstatic
遇到重复文件,会有错误提示:
This will overwrite existing files! Are you sure you want to do this? Type 'yes' to continue, or 'no' to cancel:
以上就总结了DEBUG=True/False时设置静态文件的方法。
觉得有用的同学可以顺手关注下或点个赞哦!
参考文档:
django.contrib.staticfiles.views.serve: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve
Managing static files: https://docs.djangoproject.com/en/dev/howto/static-files/
Deploying static files: https://docs.djangoproject.com/en/dev/howto/static-files/deployment/
collectstatic: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#django-admin-collectstatic
版权申明:本文为博主原创文章,转载请保留原文链接及作者。
以上是关于django2.2 DEBUG=True/False时如何设置静态文件(image js css等)的主要内容,如果未能解决你的问题,请参考以下文章
Django设置 DEBUG=False后静态文件无法加载解决