我正在计划一个新的Django项目,并希望获得一切正确和东西。我偶然发现如何组织项目目录布局的问题。幸运的是,网上有很多好的项目模板的例子。尽管如此,还有一件事我很难理解:Django中的模板和静态文件的位置
这是将模板文件放入项目根目录下的推荐方式,该项目根目录由应用程序划分为子目录。所以,模板不在应用程序目录中。这对我来说似乎合乎逻辑,因为我们要将应用程序逻辑与表示逻辑分开。但是静态文件呢?在这里,通常的做法似乎是将静态文件放在应用程序目录中,并在开发时将它们加载到项目根目录下的静态目录(collectstatic)中。而这个逻辑我不明白。由于静态文件(即js,css,图像)通常在模板中访问,而不是在应用程序代码中访问,所以我会将它们计算为表示逻辑。那为什么他们不像模板那样存储 - 项目根目录下的一个目录,以及单个应用程序的子目录?
我知道我可以将这些文件存储在任何我想要的地方,但我想这可能是人们为什么这样做的一个很好的理由。这是什么原因?
我发现在应用程序目录中组织模板和静态文件对于可插入应用程序来说很合理。但是,如果我不打算创建可插拔应用程序,没有任何好处,不是吗?每次部署我的项目的新版本时,我只需要调用'collectstatic'的开销。 – j0ker 2012-02-03 17:15:47
@ J0ker,这是可辩论的,完全是你的呼叫。有时,如果它是一个独立打包的应用程序,我发现自己使用'app/static'。其他时候,对于一组与所有核心网站相关的应用程序,我只需使用我的'site_media'文件夹。调用“collectstatic”的开销因为我使用无论如何使用它的结构脚本而被移除。 PLUS <如果您配置了staticfiles存储后端,您可以将collectstatic上传到amazon S3非常有用。 – 2012-02-03 17:46:43