首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django "TemplateView“和"/media/”url冲突

Django "TemplateView“和"/media/”url冲突
EN

Stack Overflow用户
提问于 2018-06-09 05:50:11
回答 1查看 426关注 0票数 0

我正在使用Django 1.11编写SPA (切换到2.0不是一个选择),作为后端,从Django Rest框架API获取所有数据,然后我通过React路由路由我的应用程序。

以下是我的my main urls.py

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media-files/'

问题是,特定的url设置

url('', TemplateView.as_view(template_name='index.html'),

弄乱了媒体url,用户上传的文件无法通过url链接访问,即使它们被保存到文件夹,我也只能得到一个404错误。当我注释我的“模板作为视图”的网址时,删除它或者只是给它另一个地址,就像 url (‘/’)main-一切都正常了。

我尝试从其他应用程序提供模板并将其注册到主urls.py文件中,但也不起作用

代码语言:javascript
复制
urlpatterns = [
    url(r'^', views.IndexView),
]

views.py

代码语言:javascript
复制
def IndexView(request):
    return render(request, 'main/index.html', {})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 09:43:50

代码语言:javascript
复制
url('', TemplateView.as_view(template_name='index.html'),

你错过了一个结束语)。似乎你的url模式也是不正确的。应该是

代码语言:javascript
复制
url(r'^$' , TemplateView.as_view(template_name='index.html')),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档