我想知道以下内容:
1)为什么要将文件上传到静态目录并运行'collectstatic'而不是直接上传到静态根文件夹。我知道它听起来有点不安全,没有让文件先通过python运行但仍然是.. < / p>
2)运行'collectstatic'命令时,它对静态文件有何作用
3)直接上传到静态根目录可能会产生什么后果,除此之外,这不仅限于django框架,而且还限于整个Web开发社区,如果他们具有相同的工作流程来上传所有静态文件。
答案 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 this为fully documented FWIW