Django 如何在运行服务器时提供媒体文件--不安全?
当Django 如何在运行服务器时提供媒体文件--不安全?,django,Django,当runserver——不安全时,有没有办法提供媒体文件 它只提供css和js和图像,但我需要提供媒体文件与 提到不能使用cachefile但不能使用媒体 您需要告诉它为您的媒体文件提供服务。在您的url.py中: from django.conf import settings if settings.DEBUG == False: urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 'djang
runserver——不安全时,有没有办法提供媒体文件
它只提供css和js和图像,但我需要提供媒体文件与
提到不能使用cachefile
但不能使用媒体 您需要告诉它为您的媒体文件提供服务。在您的url.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,
}),
)
urlpatterns = [
path('admin/', admin.site.urls),
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
来自django.conf导入设置的
如果settings.DEBUG==False:
urlpatterns+=模式(“”,
url(r'^media/(?P.*)$,'django.views.static.service'{
“document\u root”:settings.MEDIA\u root,
}),
url(r'^static/(?P.*)$,'django.views.static.service'{
“document\u root”:settings.STATIC\u root,
}),
)
写:
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),
]
注意:Django在通过runserver为开发提供静态文件方面变得更友好了,但媒体似乎仍然需要此更新(我仅在调试为True而非False时使用此更新)。在我的情况下,将“Django.views.static.service”更改为serve后,它确实工作得很好。在更改之前,您应该通过从django.views.static import service导入一些模块
和从django.conf导入设置导入一些模块,从django.conf.url导入url