1

我有一个 django 项目并使用 whitenoise 来提供静态文件服务。当我们运行py manage.py collectstaticwhitenoise 时,会在 settings.py 文件的 STATIC_ROOT 对象的选定文件夹中创建大量文件。它占用了大量的音量。我是否必须将我在 settings.py(STATIC_ROOT) 中指定的文件夹名称添加到 gitignore 列表中?

这是真实和安全的吗?它不会造成问题吗?

4

1 回答 1

0

./manage.py collectstatic不是来自 Whitenoise 包,而是来自 Django 本身。

至于将这个目录保存在你的 git 存储库中,通常的答案是:你不应该保存它。但是对于某些项目,这样做可能很有用。我会留给您评估哪个选项更适合您。如果您不确定,请将其远离您的 git 存储库。

为了给你完整的背景,让我快速解释一下是什么collectstatic

Django 有一个内置的静态文件系统。由于 Django 项目可以包含多个应用程序(您在 中列出的所有内容INSTALLED_APPS)并且每个应用程序都可能需要一些静态文件才能正常工作,因此 Django 允许每个应用程序将其静态文件保存在其目录中。当您想要托管应用程序时,这种方法本身并不完美,因为在应用程序中保存静态文件的所有位置都必须在您的 Web 服务器配置中明确列出。

这就是该collectstatic命令存在的原因。执行后,Django 会将所有应用程序中的所有静态文件复制到一个位置,您可以从该位置立即提供它们。您还可以通过使用STATICFILES_DIRS包含已安装应用程序之外的某些位置(例如从您的项目根目录)来扩展此文件列表。

这种方法当然需要collectstatic在某处部署或更新已部署的项目时运行命令。有时您无法将此类命令添加到部署过程中,因此您必须已经收集了静态文件。其中一种方法是将它们保存在您的 git 存储库中,但应避免这种情况,而应首选其他解决方案(例如将所有静态文件保存在单独的位置,例如 S3 存储桶)。

于 2021-05-11T13:24:56.750 回答