Django 1.11
文档显示我们应该将图像放置到 /无功/网络//媒体/
https://docs.djangoproject.com/en/1.11/ref/settings/#media-root
但在书中" Django的两个勺子"他们建议:
# Configuring MEDIA_ROOT
# ’DONT DO THIS! Hardcoded to just one user's preferences
MEDIA_ROOT = "/Users/pydanny/twoscoops_project/media"
然后建议他们的方式:
root = lambda *dirs: join(abspath(BASE_DIR), *dirs)
# Configuring MEDIA_ROOT
MEDIA_ROOT = root("media")
你接受Django推荐的Two Scoops的方式吗? 在这种情况下,MEDIA_ROOT将在项目内部。我想这很糟糕。这在某种程度上是代码和用户数据的混合。
所以,我喜欢Django的文档建议:只需硬编码到/var/www/example.com/media /的路径。
MEDIA_ROOT甚至不是STATIC_ROOT。从项目内部收集静态文件。它们包含或多或少(CSS)代码的东西。而用户上传的文件肯定是数据,而不是代码。
你能发表评论吗?你的MEDIA_ROOT是什么样的? 我可以为本地机器和生产服务器使用不同的MEDIA_ROOTS吗?答案 0 :(得分:0)
我曾经使用过以下内容:
ENV_PATH = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(ENV_PATH, 'media/')
这将自动检测settings.py文件的绝对路径并创建media_root路径。