我正在开发一个使用DJANGO基本身份验证的站点:django.contrib.auth 它工作正常,并且只有登录的用户才能访问页面。但是,我发现auth无法应用于静态文件。
例如一页加载了静态文件视频,用户需要登录才能查看,但是我可以使用f12查找路径。
http://example.org/static/media/test.mp4
,注销用户后,我仍然可以使用上述url直接访问静态文件而无需auth。我尝试了几种方法,但是它们不起作用。可以将auth添加到静态文件路径吗?
答案 0 :(得分:0)
使用Django提供媒体文件
from django.conf.urls import patterns, include, url
from django.contrib.auth.decorators import login_required
from django.views.static import serve
from django.conf import settings
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
urlpatterns = patterns('',
url(r'^media/(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve,
{'document_root': settings.MEDIA_ROOT}),
)