【发布时间】:2017-12-17 06:00:15
【问题描述】:
我在本地服务器上运行,当我在浏览器中转到 http://127.0.0.1:8000/media/ 时,它显示找不到页面。
设置:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
根网址:
from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^polls/', include('mysite.polls.urls')),
url(r'^admin/', admin.site.urls),
url(r'^submit/', include('mysite.uploads.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
用户上传模型:
from django.db import models
class Document(models.Model):
description = models.CharField(max_length=255, blank=True)
document = models.FileField(upload_to='documents/')
uploaded_at = models.DateTimeField(auto_now_add=True)
遵循 Django 文档:
在开发过程中提供用户上传的文件
在开发过程中,您可以使用 django.contrib.staticfiles.views.serve() 视图从 MEDIA_ROOT 提供用户上传的媒体文件。
这不适合生产使用!有关一些常见的部署策略,请参阅部署静态文件。
例如,如果您的 MEDIA_URL 定义为 /media/,您可以通过将以下 sn-p 添加到您的 urls.py 来做到这一点:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
【问题讨论】:
-
http://127.0.0.1:8000/media/的 404 不是问题。您需要尝试查看媒体文件,例如http://127.0.0.1:8000/media/image.jpg.
标签: django python-3.x