繁体   English   中英

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

[英][django]when debug=false,MEDIA_URL returns not found

当 DEBUG=TRUE 时,media_url 工作,但 DEBUG = False,返回不工作。
这是我的设置文件。

设置.py

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

网址.py

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

家.html

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

模型.py

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

也许,这个设置是推荐的调试模式。
我应该更改此设置。

根据文档

仅在给定前缀是本地(例如/ media /)而不是URL(例如http://media.example.com/ )的情况下,此帮助器功能仅在调试模式下起作用。

使用辅助功能时,他们提到的是: + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在生产中为nginx设置静态文件和媒体文件非常简单, DigitalOcean提供了很好的指南 静态部分只有几行:

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

将下面的代码设置为“urls.py”以在“DEBUG = False”中显示媒体文件:

# "urls.py"

from django.conf.urls import url
from django.views.static import serve
from django.conf import settings

urlpatterns = [
    # ...
    url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM