[django]当debug = false时,未找到MEDIA_URL返回

时间:2017-03-17 15:23:11

标签: python django

当DEBUG = TRUE时,media_url正在运行,但是DEBUG = False,返回不起作用。
这是我的设置文件。

setting.py

DEBUG = False
...
MEDIA_URL = "/pics/"
MEDIA_ROOT = BASE_DIR

urls.py

urlpatterns = [
   ....
   ....
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

home.html的

...
<img src="{{ post.image.url}}" ..>

models.py

class Post(models.Model):
    title    = models.CharField(max_length=255)
    pub_date = models.DateTimeField()
    image    = models.ImageField(upload_to="media/")

也许,这个设置是推荐的调试模式。
什么是我改变这个设置。

1 个答案:

答案 0 :(得分:1)

根据the documentation

  

此辅助函数仅在调试模式下有效且仅在给定时才有效   前缀是本地的(例如/ media /)而不是URL(例如   http://media.example.com/)。

使用辅助函数,他们提到:+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

设置静态&amp;生产中nginx的媒体文件非常简单,DigitalOcean has a great guide。静态部分只是几行:

    location /media/ {
        root /home/sammy/myproject;
    }