【发布时间】:2015-03-19 17:29:22
【问题描述】:
runserver --insecure时有什么方法可以提供媒体文件
它只提供 css 和 js 和图像,但我需要提供媒体文件...
They 提到cachefile 是不可能的,但没有关于媒体的消息。
【问题讨论】:
标签: django
runserver --insecure时有什么方法可以提供媒体文件
它只提供 css 和 js 和图像,但我需要提供媒体文件...
They 提到cachefile 是不可能的,但没有关于媒体的消息。
【问题讨论】:
标签: django
您需要告诉它为您的媒体文件提供服务。在你的urls.py:
from django.conf import settings
if settings.DEBUG == False:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
【讨论】:
from django.views.static import serve 和from django.conf import settings、from django.conf.urls import url 导入一些模块
写:
import re
from urllib.parse import urlsplit
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.urls import re_path
from django.views.static import serve
def static(prefix, view=serve, **kwargs):
return [
re_path(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs),
]
然后在urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
【讨论】: