Django多应用的静态文件

5 投票
1 回答
1926 浏览
提问于 2025-04-16 23:16

假设我有两个应用:

foo 和 bar

项目的结构如下,我该如何确保这两个应用的样式不会冲突呢?运行 manage.py collectstatic 的时候,会导致其中一个应用的文件被覆盖掉... 管理后台的应用会被导入到一个名为 'admin' 的文件夹里,但我的应用的静态文件却直接导入到主目录,这样如果有重复的文件,就会覆盖掉其他应用的文件。

/Project
   /foo
      /static
         /css
            /style.css
      /views.py
      /models.py
      /urls.py
   /bar
      /static
         /css
            /style.css
      /views.py
      /models.py
      /urls.py
   /urls.py
   /manage.py
   /settings.py

1 个回答

9

别这样做。无论你有没有使用staticfiles/collectstatic,Django都会提供其中一个style.css文件。只需要在static/前面加上应用的名字就可以了。你可以看看django/contrib/(admin|auth|...)/static是怎么组织的。

Project
|-- foo
|   |-- static
|   |   `-- foo
|   |       `-- css
|   |           `-- style.css
|   |-- views.py
|   |-- models.py
|   `-- urls.py
|-- bar
|   |-- static
|   |   `-- bar
|   |       `-- css
|   |           `-- style.css
|   |-- views.py
|   |-- models.py
|   `-- urls.py
|-- urls.py
|-- manage.py
`-- settings.py

撰写回答