RedirectView.as_view无法在root上运行

时间:2018-01-08 18:18:41

标签: python django

在django 1.8项目中,我尝试将http://myProject/ads.txt重定向到外部网址http://a.location.that.has.the.ads.txt.file,从而在不使用ftp的情况下提供ads.txt文件,只需将ads.txt放在根目录中即可。 鉴于这个最小的目录结构:

django projects
    myProject
        myapp
            urls.py
            views.py
        someotherapp
        yetanotherapp
        myProject
            settings.py
            urls.py (this is the top urls.py)
            views.py

在myProject / myProject / urls.py中,(“top”urls.py)我作为urlpatterns列表中的第一个条目,行:

urlpatterns = patterns('',
    (r'^ads\.txt', RedirectView.as_view(url='http://a.location.that.has.the.ads.txt.file', permanent=False)),

接下来是更多的模式匹配正则表达式。这不起作用,并且失败了404.工作是什么

urlpatterns = patterns('',
    (r'^foo/ads\.txt', RedirectView.as_view(url='http://a.location.that.has.the.ads.txt.file', permanent=False)),

然后调用http://myProject/foo/ads.txt 不幸的是,ads.txt文件必须放在站点根目录下。我已经尝试了许多不同的正则表达式,它们在正则表达式验证器中测试得很好,但只是不起作用(返回404)。如果没有额外的目录“foo”,我该怎么做?任何想法都赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

原来你不能用顶级urls.py"路由表"重定向。到Django项目根目录之上。 nginx服务器级重定向就可以了。