sevenQu
V2EX  ›  Django

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

  •  
  •   sevenQu · Jan 15, 2019 · 3198 views
    This topic created in 2723 days ago, the information mentioned may be changed or developed.

    开始是路径结尾没斜杠

    • 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  
       Jan 16, 2019
    Django 默认有个 APPEND_SLASH 配置项, 默认为 True, 会自动将不带 / 的不匹配的 URL 重定向到附加斜杠的相同 URL. 有问题的话可把这个配置项置为 False 看看
    https://docs.djangoproject.com/en/1.11/ref/settings/#append-slash
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3145 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 13:52 · PVG 21:52 · LAX 06:52 · JFK 09:52
    ♥ Do have faith in what you're doing.