为什么我需要同时定义 STATIC_URL 和 STATICFILES_DIRS?

Why do I need to define both STATIC_URL and STATICFILES_DIRS?

如果我只定义一个,页面显示没有任何CSS/JS。如果我同时定义两者,页面加载正常。这是为什么?我以为 STATICFILES_DIRS 是多余的?

这里有一个答案,但它没有回答为什么我需要两者。它只是简单地说明了两者的作用,在我看来这是一回事。有什么区别?

List of definitions for STATIC/STATIC_ROOT/STATICFILES_DIR

根据我在 Whosebug 上的搜索,我想我可以总结如下:

STATIC_ROOT 被引用为静态服务器,无论是默认的 Django 静态服务器还是在 Heroku/etc 上制作的静态服务器。你在 urls.py

中指向这个

STATICFILES_DIR 引用静态资产中的内容,因此如果有单独的文件夹,一个用于 CSS,一个用于 JS,等等

欢迎补充!

STATICFILES_DIRS 是无关紧要的。如果您在应用程序内部的静态文件目录之外使用静态文件目录,则只需要使用它。在没有看到更多代码和项目结构的情况下,我什至无法开始猜测为什么您的页面没有加载,但您绝对不需要指定 STATICFILES_DIRS.