如何最好地管理Django模板&;静态内容?
所以,我和我的团队是Django开发的新手。在过去的几周里,我们一直在尝试设计我们的项目结构,并且我们已经做了大量的阅读,试图掌握这样做的最佳实践 然而,我们仍在努力寻找存储所有应用程序通用的模板/静态文件的最佳方法 让我详细说明我们迄今为止实施的结构:如何最好地管理Django模板&;静态内容?,django,templates,static,Django,Templates,Static,所以,我和我的团队是Django开发的新手。在过去的几周里,我们一直在尝试设计我们的项目结构,并且我们已经做了大量的阅读,试图掌握这样做的最佳实践 然而,我们仍在努力寻找存储所有应用程序通用的模板/静态文件的最佳方法 让我详细说明我们迄今为止实施的结构: root-folder/ app-1/ static/ app-1/ css/ js/ img/
root-folder/
app-1/
static/
app-1/
css/
js/
img/
templates/
base.html
base-app-1.html **extends base.html
app-2/
static/
app-2/
css
js
img
templates/
base.html **extends base.html at 'project-name' level
base-app-2.html **extends base.html
project-name/
collectstatic/
templates/
base.html
static/
base/
css
js
img
这种结构让我感到不舒服的一点是,我们的顶级模板位于“项目名称”级别。我希望看到此文件夹与根级别的静态文件夹处于同一级别
但是,我不想将根级别的静态文件夹内容移动到“project name/collectstatic”中,因为我不希望该文件夹中的文件受到版本控制
我们意识到,在Django世界,这个问题没有明确的答案。但是,我们的路线对吗?我们误解了什么吗
我们有几个想法:
在Django中,最好依靠staticfiles的AppDirectoriesFinder和模板的app_directories.Loader加载程序类来管理静态文件和模板 这意味着您将拥有某种类型的
project.core
、project.base
或project.commons
应用程序,这些应用程序将填充在整个项目中重用的基本模板和静态资源
我假设您对项目名称/collectstatic/
文件夹的问题是,它是您定义的静态根目录,位于版本控制下的路径上。理想情况下,将静态和媒体根目录移到项目源之外。最简单的解决方案是将其移动到项目顶级包的旁边,在分发Python包的标准项目布局中,或者移动到Web服务器的预配置文档根目录中
无论哪种方式,这都应该将本地生成的静态资源移出项目的Python包。谢谢@filip dupanovic。这为我们澄清了一切。我们正在进行一个项目。核心应用程序!:-D