来自Django Docs:
部署django.contrib.staticfiles提供了便利 用于在单个目录中收集静态文件的管理命令 你可以轻松地为他们服务。
将STATIC_ROOT设置设置为您想要的目录 提供这些文件,例如:
STATIC_ROOT = "/var/www/example.com/static/"
运行collectstatic管理命令:
$ python manage.py collectstatic
这将复制您的所有文件 静态文件夹进入STATIC_ROOT目录。
使用您选择的网络服务器来提供文件。部署静态 文件涵盖了静态文件的一些常见部署策略。
复制文件的目的是什么,为什么不从他们所在的目录中为他们提供服务?
答案 0 :(得分:24)
为什么不直接提供您的static
目录?您可能会使用多个应用,并且您的某些应用可能不在您的控制之下。在staticfiles
应用程序存在之前,您必须手动将所有应用程序的静态文件复制到公共目录,将它们上载到您的CDN,或将它们符号链接到Web服务器的文档根目录。
staticfiles应用程序建立了一个约定:将每个应用程序的静态文件放在static
目录下,让Django为您完成工作。
答案 1 :(得分:11)
STATIC_ROOT
可以在与应用程序不同的计算机上,因此将静态文件复制到静态根目录意味着您可以从不同的服务器(CDN FTW!)提供静态文件如果这些文件只位于各自的应用程序目录中,则能够执行此操作。