为什么要将文件上传到django静态目录而不是直接上传到django static root

时间:2016-11-14 12:31:58

标签: python django web-frameworks django-staticfiles django-1.8

我想知道以下内容:

1)为什么要将文件上传到静态目录并运行'collectstatic'而不是直接上传到静态根文件夹。我知道它听起来有点不安全,没有让文件先通过python运行但仍然是.. < / p>

2)运行'collectstatic'命令时,它对静态文件有何作用

3)直接上传到静态根目录可能会产生什么后果,除此之外,这不仅限于django框架,而且还限于整个Web开发社区,如果他们具有相同的工作流程来上传所有静态文件。

1 个答案:

答案 0 :(得分:2)

  

为什么要将文件上传到静态目录并运行   &#39; collectstatic&#39;

如果您正在谈论用户提交的内容,那么您应该将其上传到任何静态目录中 - 这是&#34; MEDIA_ROOT&#34;和&#34; MEDIA_URL&#34;是给。 &#34;静态&#34;文件是您的应用程序或项目的资产(样式表,js等),您可以控制它们。

至于为何不直接将这些静态文件放入&#34;静态根&#34;:

  • 首先是因为您希望将这些文件保留在版本控制之下(它们是您的源代码的一部分),但是直接从前端Web服务器提供它们,甚至最终来自不同的服务器,cdn或whatesoever,因此您无法提供服务他们直接来自你项目的树,他们必须住在服务员(或其他)可以为他们服务的地方。

  • 也是因为您想要所有那些静态文件 - 您的项目的特定文件,以及来自您正在使用的第三方应用程序的任何静态文件。

回答第二个问题:collectstatic主要会查找所有或您的静态文件(根据您的设置)并将它们复制到STATIC_ROOT。它还可以根据您的静态文件存储应用附加处理。

请注意,all thisfully documented FWIW