V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangjingqiang
V2EX  ›  Django

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

  •  
  •   zhangjingqiang · 2013-02-16 17:35:08 +08:00 · 5923 次点击
    这是一个创建于 4327 天前的主题,其中的信息可能已经有所发展或是发生改变。
    按照一个教程做了一个 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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.