静态目录中的 Django 模板?

Django template in static directory?

将我的 django 模板放在我的静态目录中是一个好习惯吗?

collectstatic 无论如何都会将我所有的模板文件复制到静态目录中。为什么不直接把静态文件放在静态目录下呢?

不,一点也不。

模板不是静态文件。 collectstatic 不会 将您的模板文件复制到静态目录中。没有理由把它们放在那里。

Is it a good practice to put my django templates in my static directory?

嗯,通常不会,因为它使它们可以从外部调用(通过直接访问 http://example.com/static/templates/base.html)并且可能会通过公开模板标签和上下文变量来揭示您的一些内部数据结构。但是,有时这用于在 HTML5 应用上下文中为 Javascript 框架提供模板。

在 HTML5 应用程序上下文中公开的模板不使用 Django 的任何模板层,对于类似的用例,它可以说是完全分离前端和后端的更好解决方案。但该领域的用例和实现各不相同。

The collectstatic would copy all my template files in the static directory anyway. Why not putting the static files in the static dir directly?

不,只有当您将它们存储在应用程序的 static 目录下时才会发生这种情况,这将是一个错误的习惯(同样,如果没有特别选择将模板公开给 Javascript 应用程序)。如果您将它们存储在 templates/myapp,它们将不会被复制。它也不会开箱即用,因为默认情况下 Django 不会查看 STATIC_ROOT 模板。