博客五部曲之一 - 简单博客


1230 浏览 5 years, 4 months

25 设置静态文件,css和JavaScript

版权声明: 转载请注明出处 http://www.codingsoho.com/

这儿介绍的主要是本地开发环境,并不是产品应用。

添加STATICFILES_DIRS配置,django会从这里面的目录里收集静态文件

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
]

STATIC_URL是静态文件的URL根路径,在网页上静态文件都是从这个链接开始的

STATIC_URL = '/static/'

在URL里添加静态文件的访问入口

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

STATIC_ROOT = os.path.join(s.path.dirname(BASE_DIR) , 'static_cdn'),

执行python manage.py collectstatic,django将会将STATICFILES_DIRS下面的静态文件连同admin下面的一起拷贝到STATIC_ROOT目录下

我们创建第一个自己的静态文件 static/css/base.css, 执行collectstatic,该文件就会被拷贝到static_cdn/css/base/css,它对应的URL为/static/css/base.css

在模板里引入该css,可以直接用固定URL,但是一旦STATIC_URL变了,它必须重新修改。 Django提供了static tag,{% load staticfiles %},然后通过{% static ‘css/base.css’ %}引入该文件,即使STATIC_URL变了,该URL会自动跟着变化。

<link rel="stylesheet" type="text/css" href="/static/css/base.css">

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'css/base.css' %}">

https://docs.djangoproject.com/en/1.11/howto/static-files/