我正在寻找有关如何构建我的Django项目的建议。这是我目前的结构:
project_name
- deploy
- app_name
-- migrations
-- templates
-- templatetags
-- __init__.py
-- admin.py
-- context_processors.py
-- defaults.py
-- models.py
-- tests.py
-- views.py
- static
-- admin
-- app_name
--- css
--- fonts
--- img
--- js
--- tinymce
- templates
- project_name
- __init__.py
- fabfile.py
- manage.py
我想知道在我的app文件夹中包含所有静态文件是否更好,或者它们是否应该像在静态文件夹和app_name中那样?
或者它是构建静态文件的另一种更好的方法吗?
答案 0 :(得分:3)
将它们放在应用程序目录下名为“static”的目录中。这就是django.contrib.staticfiles.finders.AppDirectoriesFinder
寻找by default的地方。
在static/
目录中,使用您的应用名称创建一个目录。
因此,在部署时,当您运行./manage.py collectstatic
时,Django会将所有文件复制到settings.STATIC_ROOT
中定义的目录中,并且每个应用程序都将其文件放在其自己的子目录中。
project_name
- deploy
- app_name
- migrations
...
- static
- app_name
- css
- fonts
- img
- js
- tinymce
- templates
- app_name
- item.html
- list.html
- project_name
- __init__.py
- manage.py
此外,根据您拥有的字体,CSS和JS文件的数量,我只需将它们放在app_name/static/app_name/
内,而不是创建另一个目录级js/
和css/
。正如他们所说,“扁平比嵌套更好”。
答案 1 :(得分:2)
如果您的所有观点都与静态文件有关,请遵循经验法则:
它们只是提示,但是最常练的提示。只要路径可以通过Django staticfiles加载器访问,您就可以将它们放在您想要的位置。