Django的结构目录,为什么static要放在两个位置? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangjingqiang
V2EX    Django

Django的结构目录,为什么static要放在两个位置?

  •  
  •   zhangjingqiang 2013-02-16 17:5:08 +08:00 6461 次点击
    这是一个创建于 4693 天前的主题,其中的信息可能已经有所发展或是发生改变。
    按照一个教程做了一个 Django(1.4) 程序,基础目录如下:

    .
    ├── manage.py
    ├── ribbit
    │ ├── __init__.py
    │ ├── __init__.pyc
    │ ├── database.db
    │ ├── settings.py
    │ ├── settings.pyc
    │ ├── static
    │ ├── templates
    │ ├── urls.py
    │ └── wsgi.py
    └── ribbit_app
    ├── __init__.py
    ├── __init__.pyc
    ├── migrations
    │ ├── 0001_initial.py
    │ ├── 0001_initial.pyc
    │ ├── __init__.py
    │ └── __init__.pyc
    ├── models.py
    ├── models.pyc
    ├── static
    ├── tests.py
    └── views.py

    ribbit是项目名(django-admin.py startproject ribbit)
    ribbit_app是应用名(django-admin.py startapp ribbit_app)
    关于static文件,为什么要分别放在两个下面?
    /ribbit/settings.py 中指定的STATIC_URL = '/static/' 是 ribbit_app 下的。
    那么 ribbit 下的 static 有什么用?
    5 条回复    1970-01-01 08:00:00 +08:00
    imom0
        1
    imom0  
       2013-02-16 19:54:14 +08:00
    用 `python manage.py collectstatic` 能把这些目录下面的静态文件拷贝到 settings.STATIC_ROOT ,部署时配置静态文件URL指向STATIC_ROOT。
    lastmayday
        2
    lastmayday  
       2013-02-16 20:12:33 +08:00
    Django1.4的话 static目录, templates目录以及app目录是同级的吧
    zhangjingqiang
        4
    zhangjingqiang  
    OP
       2013-02-17 18:47:11 +08:00
    谢谢楼上各位回答。
    官方文档:
    https://docs.djangoproject.com/en/1.4/howto/static-files/
    ledzep2
        5
    ledzep2  
       2013-02-18 10:40:16 +08:00
    充分解耦. app可以带有自己的static, templates, templatetags. 你用dev server的时候, 他能找到. deploy的时候, 用collectstatic或者ln -s