在阅读了大量文档之后,我仍然不太明白什么算是静态文件,什么算是用户上传的文件……甚至对于什么是静态文件也不是很清楚。
1. 静态文件
Django将静态文件描述为像“图像、JavaScript和CSS”这样的东西。好的,有道理。但是那些.py文件和.html模板文件等等……它们不是静态的吗?它们在站点运行时不会“更改”。什么是静态文件?什么是“提供静态文件”?这与“提供”“views.py”文件或“home.html”文件有何不同?
此外,我为什么需要“collectstatic”呢?为什么所有我的静态文件都需要放在一个地方?我想如果您使用单独的Web服务器来“提供”它们,这就有意义了……但是,我仍然不确定这到底是什么意思。
另外,“collectstatic”到底去哪里找到所有所谓的静态文件?它是否会查看我所有的代码并查找我访问的图像/ JavaScript文件?
2. 用户上传的文件
如果我只是单纯地接受这个静态的东西,那么如果用户上传了一张图片会发生什么?我需要在后台运行一个不断运行“collectstatic”的程序吗?Django 描述 媒体文件作为管理用户上传内容的一种方式。老实说,我还没有尝试过这个(现在会尝试),但这仍然代表一个问题:如果将所有“静态”文件放在一个地方如此重要,为什么对于用户上传的文件突然不需要这样做呢?
这个“MEDIA_ROOT”目录里的文件是否不被“collectstatic”收集?如果我把所有的图片/ JavaScript / CSS都放到这个媒体文件夹中,那么什么都不会被收集?这样做有什么问题吗?
感谢任何人能够提供的见解。