入口页面返回 404,或者样式请求被动态路由吃掉,多数是路径定义少了结尾的斜杠。

匹配过程
框架按顺序逐条比对路由表,命中第一条即停止。把动态段写在静态段之前时,静态地址会被动态段先吃掉。
urlpatterns = [
path('', views.index, name='index'),
path('wiki/<str:title>/', views.page, name='page'),
]
尾部斜杠的作用
路径写成不带结尾斜杠的动态模式时,请求带斜杠的地址会被解析成标题为该值的条目,样式与静态资源请求被一并路由到页面视图。补上结尾斜杠后,这类地址不再落入该模式。
自动补斜杠
该设置在地址缺少斜杠且补上后能匹配时自动重定向。开启状态下访问不带斜杠的地址会发生一次跳转,接口请求因此可能收到重定向响应,调试时需要注意。
静态资源
开发阶段由静态文件应用按前缀提供服务,前缀同样要以斜杠结尾,并排在动态路由之前,或交由服务器层处理。
检查顺序
- 确认动态模式的结尾斜杠与预期地址一致。
- 确认静态前缀没有被动态模式先行匹配。
- 确认请求地址是否被自动追加斜杠后重定向。
- 在调试页查看实际命中的模式名称。
