在Django开发期间提供静态媒体:为什么不MEDIA_ROOT?
我在阅读本指南时介绍了如何在开发期间使用Django提供静态媒体。
我注意到
MEDIA_URL
和MEDIA_ROOT
没有用在这里。为什么?有什么不同?
我尝试用MEDIA_URL
和MEDIA_ROOT
来做,并得到了奇怪的结果。
没有找到相关结果
已邀请:
3 个回复
舜辉
从您的设置文件中选择MEDIA_ROOT意味着它适用于开发和实时。
械怒等
是保存
等媒体的目录的绝对路径。 MEDIA_URL
是处理从
提供的媒体的URL。如果存在路径组件,请确保使用尾部斜杠(在其他情况下是可选的)。示例:“http://media.lawrence.com”,“http://example.com/media/”。 所以,要改写那些......
是文件在你的系统上物理存在的地方,
是这些文件映射到的地方。在开发中,这可能并不总是可访问的,并且在大多数情况下,您的开发环境和您的生产环境是不一样的,并且您将不得不返回并进行更改。另一件事是,当Django被设计为不为您提供静态内容时,它并不是一个好的做法。 如果您打算在开发中使用它,我建议您使用将其限制为DEBUG = True的方法。当
设置为
时,告诉Django在开发时从临时位置提供静态内容是一种更好,更安全的做法。你不打算用
把你的网站投入生产,对吗?好吧,至少你不应该。 以下是我实现它的方法: settings.py:
urls.py:
这样我正在处理的任何项目都有一个
目录,里面有所有必要的媒体。在dev中它是自包含的,除了
之外我不必在设置中翻转任何位,我将会这样做。
版萍层分
注意:以上假设您已正确设置
和
......这是djangodocs linkslap。