django - 我什么时候应该使用media_root或static_root?

时间:2011-09-17 18:09:06

标签: django

我对django中的静态文件和媒体文件感到困惑。我在其他地方看到人们可以互换使用它。

我应该何时使用media_root,何时应该使用static_root

如果我有网站图片,我应该把它放在静态吗?如果我有产品图片,我会把它放在媒体上吗?

1 个答案:

答案 0 :(得分:32)

MEDIA_ROOT是放置文件上载的目录,以及通常存储生成文件的位置。例如,我的一个Django应用程序允许用户上传图像。在其中一个模型类中,我使用sorl-thumbnail中的ImageField类型和upload_to='%Y-%m'。每当用户上传图片时,该文件都会存储在MEDIA_ROOT/%Y-%m/中(%Y替换为当前年份,%m替换为当前月份编号)。此外,当sorl-thumbnail为上传的图片生成缩略图时,它会将缩略图by default放在MEDIA_ROOT/cache/的某处。

STATIC_ROOT用于配置放置静态资产的目录。例如,网页设计中使用的网站样式表,JavaScript文件和图像是进入STATIC_ROOT的文件类型。如果您安装了多个应用程序,则每个使用静态文件的应用程序都可以拥有自己的静态文件目录。您使用collectstatic管理功能(通过python manage.py collectstatic调用)将所有应用的静态文件复制到STATIC_ROOT