2016-11-14 82 views
0

我想了解以下内容:为什么将文件上传到Django的静态目录,而不是直接Django的静态根

1)你为什么要上传的文件为静态目录并运行“collectstatic”,而不是直接上传到静态根folder.I知道这听起来有点不安全,没有得到文件通过Python运行第一,但仍..

2)当您运行“collectstatic”命令它是做什么的静态文件

3)什么可以是直接上传到静态根的结果和替代这个,这不只是limi如果他们拥有相同的工作流程来上传所有的静态文件,那么他们可以使用django框架,但可以访问整个web开发社区。

+0

你的意思是属于您的网站(其.css文件等),或者由用户上传的文件的静态文件? – RemcoGerlich

回答

2

你为什么要上传的文件为静态目录并运行 “collectstatic”

如果你谈论的是用户提交的内容,你应该definitly 上传到任何静态目录 - 这是什么是“MEDIA_ROOT”和“MEDIA_URL”。 “静态”文件是您的应用程序或项目的资产(样式表,js等),您将其保留在版本控制之下。

,为什么你不直接把这些静态文件中的“静态根”:

  • 第一,因为你要保持版本控制下的那些文件(它们是你的源代码的一部分),但直接从前台Web服务器提供服务,甚至最终从一个独立的服务器(cdn或whatesoever)提供服务,因此您无法直接从项目树中为它们服务,它们必须位于frontserver(或其他任何位置)的某个位置。

  • 也因为你想获得全部这些静态文件 - 你的项目的特定的,但也是来自你正在使用的第三方应用程序的任何静态文件。

,回答你的第二个问题:collectstatic会,主要是,寻找所有的或您的静态文件(根据您的设置),并将其复制到STATIC_ROOT。它也可能应用额外的处理,这取决于你的静态文件存储。

注意all thisfully documented FWIW