V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sevenQu
V2EX  ›  Django

django path 路径最后是否加 / 的奇怪问题,希望各位看看?

  •  
  •   sevenQu · 2019-01-15 22:53:24 +08:00 · 2619 次点击
    这是一个创建于 2146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开始是路径结尾没斜杠

    • path('schoolhot',xxx_funciton)
      • 此时只能访问 http://127.0.0.1:8000/schoolhot

    改成路径结尾加上斜杠

    • path('schoolhot/',xxx_funciton)
      • 此时访问 http://127.0.0.1:8000/schoolhot 也会重定向到 http://127.0.0.1:8000/schoolhot/
      • 访问 http://127.0.0.1:8000/schoolhot/正常

    再改成上面的第一种 path

    • path('schoolhot',xxx_funciton)
      • 此时访问 http://127.0.0.1:8000/schoolhot 也会重定向到 http://127.0.0.1:8000/schoolhot/
      • 访问 http://127.0.0.1:8000/schoolhot/路径不匹配

    • 看了 f12,确实是浏览器重定向,不是 django 做的
    • 试了解决方法好像是只能是清除浏览器缓存,此时就可以访问 http://127.0.0.1:8000/schoolhot
    • 感觉这。。。。太坑了,如果你从来没访问成功过带斜杠的路径就没事,一旦访问成功过,就会被记录下来,以后再访问不带斜杠的会直接重定向到有斜杠,这。。。。。。
    contradictspiral
        1
    contradictspiral  
       2019-01-16 01:06:02 +08:00
    Django 默认有个 APPEND_SLASH 配置项, 默认为 True, 会自动将不带 / 的不匹配的 URL 重定向到附加斜杠的相同 URL. 有问题的话可把这个配置项置为 False 看看
    https://docs.djangoproject.com/en/1.11/ref/settings/#append-slash
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:33 · PVG 08:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.