Skip to main content
 首页 » 编程设计

python之Django 收集静态文件失败

2025年05月04日36落叶

当我运行 python manage.py collectstatic

它说 您正在使用 staticfiles 应用程序,但尚未将 STATIC_ROOT 设置设置为文件系统路径。

这是我的settings.py

STATIC_URL = '/static/' 
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR,'static'), 
] 

我该如何解决这个问题?

请您参考如下方法:

您需要将 STATIC_ROOT 作为参数添加到您的 settings.py。

以下是它如何处理这些静态文件:

在 STATICFILES_DIRS 中,您告诉 django 去哪里寻找静态文件。这主要不是为了服务他们,而是为了收集他们!关键是在生产服务器上,django 不应该为静态文件提供服务,这个任务应该由 web 服务器处理。 Check the docs for details.这个想法是你运行命令 python manage.py collectstatic django 将遍历 STATICFILES_DIRS 中的所有路径,收集静态文件并将它们放入... - 完全正确! - 进入 STATIC_ROOT 文件夹。

此时两件事应该变得清晰:

1.您需要在 settings.py 中提供 STATIC_ROOT。

2. STATIC_ROOT 中提供的路径不能是 STATICFILES_DIRS 的一部分,因为这意味着 django 需要将文件夹放入自身.

同样,这是在生产服务器的情况下。在开发过程中,django 可以在没有 Web 服务器帮助的情况下处理静态文件,here更多来自文档。尽管如此,始终需要 STATIC_ROOT 参数。

希望这有助于澄清事情。编码愉快! :)