我想知道为什么 Django 在生产中不提供 statifiles 的原因,当DEGUB = False
.
STATICFILES_DIRS
我们指定STATICFILES_DIRS
告诉 Django 在哪里寻找绑定到指定应用程序的静态文件。
STATIC_ROOT
我们指定STATIC_ROOT
告诉 Django 运行后将python manage.py collectstatic
文件存储在哪里,因此每个静态文件都存储在STATIC_ROOT
.
假设我们设置STATIC_ROOT = "staticfiles/"
.
这意味着一旦我们运行 collectstatic 命令,所有STATICFILES_DIRS
路径内的文件都将存储在“staticfiles/”中
STATIC_URL
最后我们指定STATIC_URL
为“prefix”来告诉Djando去哪里寻找静态文件,例如在HTML<link>
标签中,我们看到的url是基于STATIC_URL
值的
当我们将项目上传到服务器时,我们会上传整个项目,因此每个文件。为什么 Django 在服务器上运行时不能自己提供静态文件?
正如我刚才所说,我们上传了整个文件夹,所以我们上传的文件就在那里(还有静态文件!)。
问题
- 我只是想知道,为什么我们必须在生产中基于服务器指定静态文件,而 Django 可以像在 localhost 中一样为我们做所有事情?
- 从另一个存储加载文件不是比从项目的主文件夹加载文件慢得多吗?