Django "TemplateView" 和“/media/”url 冲突
Django "TemplateView" and "/media/" url conflict
我正在使用 Django 1.11(无法切换到 2.0)编写 SPA 作为后端,从 Django Rest Framework API 获取所有数据,并通过 React 路由来路由我的应用程序。
这是我的主要内容 urls.py :
urlpatterns = [
url(r'^api/', include('text_cms.urls')),
url(r'^api/', include('photos_admin.urls')),
url(r'^admin/', admin.site.urls),
url('', TemplateView.as_view(template_name='index.html'),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的 settings.py 文件:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\', '/')
MEDIA_URL = '/media-files/'
问题是,特定的 url 设置
url('', TemplateView.as_view(template_name='index.html'),
正在弄乱媒体 url,并且 url link 无法访问用户上传的文件,即使它们已保存到文件夹中,我也只是收到 404 错误。当我评论我的 "Template as view" url 时,将其删除或只给它另一个地址,例如 url('main/') - 一切正常又好了
我尝试从其他应用程序提供模板并将其注册到主 urls.py 文件中,但它也不起作用
urlpatterns = [
url(r'^', views.IndexView),
]
views.py
def IndexView(request):
return render(request, 'main/index.html', {})
url('', TemplateView.as_view(template_name='index.html'),
您缺少一个结尾)。看来您的 url 模式也不正确。应该是
url(r'^$' , TemplateView.as_view(template_name='index.html')),
我正在使用 Django 1.11(无法切换到 2.0)编写 SPA 作为后端,从 Django Rest Framework API 获取所有数据,并通过 React 路由来路由我的应用程序。
这是我的主要内容 urls.py :
urlpatterns = [
url(r'^api/', include('text_cms.urls')),
url(r'^api/', include('photos_admin.urls')),
url(r'^admin/', admin.site.urls),
url('', TemplateView.as_view(template_name='index.html'),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的 settings.py 文件:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\', '/')
MEDIA_URL = '/media-files/'
问题是,特定的 url 设置
url('', TemplateView.as_view(template_name='index.html'),
正在弄乱媒体 url,并且 url link 无法访问用户上传的文件,即使它们已保存到文件夹中,我也只是收到 404 错误。当我评论我的 "Template as view" url 时,将其删除或只给它另一个地址,例如 url('main/') - 一切正常又好了
我尝试从其他应用程序提供模板并将其注册到主 urls.py 文件中,但它也不起作用
urlpatterns = [
url(r'^', views.IndexView),
]
views.py
def IndexView(request):
return render(request, 'main/index.html', {})
url('', TemplateView.as_view(template_name='index.html'),
您缺少一个结尾)。看来您的 url 模式也不正确。应该是
url(r'^$' , TemplateView.as_view(template_name='index.html')),