Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在运行服务器时提供媒体文件--不安全?_Django - Fatal编程技术网

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