当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/")
也许,这个设置是推荐的调试模式。
什么是我改变这个设置。
答案 0 :(得分:1)
此辅助函数仅在调试模式下有效且仅在给定时才有效 前缀是本地的(例如/ 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;
}