簡體   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