Django - 重定向到静态html文件

时间:2014-08-12 15:56:13

标签: python django

我有一个Django应用程序(我是一个相当新的应用程序,所以我尽我所能来学习输入和输出),我希望有一个url端点只需重定向到一个另一个文件夹(app)中的静态html文件。

我的项目文件层次结构如下:

docs/
 - html/
    - index.html
myapp/
 - urls.py

我的urls.py看起来像是:

from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView

urlpatterns = patterns('',
    url(r'^docs/$', RedirectView.as_view(url='/docs/html/index.html')),
)

但是,当我导航到http://localhost:8000/docs时,我看到浏览器重定向到http://localhost:8000/docs/html/index.html,但该页面无法访问。

是否有任何理由导致/docs/html/index.html在这样的重定向中无法使用myApp应用程序?

非常感谢指针。

2 个答案:

答案 0 :(得分:4)

  

注意:自Django 1.5以来已弃用direct_to_template。使用   而是TemplateView.as_view

我认为你想要的是Template View,而不是RedirectView。你可以这样做:

<强> urls.py

from django.conf.urls import patterns, include, url
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
    (r'^docs/$', direct_to_template, {
        'template': 'index.html'
    }),
)

只需确保index.html的路径位于TEMPLATE_DIRS设置中,或者只是将其放在应用的templates文件夹中(This answer可能有帮助)。

答案 1 :(得分:3)

我很确定Django正在寻找匹配/docs/html/index.html的URL路由,它不知道提供静态文件,当它找不到显示错误的路由时