You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一Django应用中引入多个urls.py?解决htmx路由404错误

解决Django+htmx的URL 404问题

问题根源

你当前的URL配置拼接后和请求路径完全不匹配:

  • my_app/urls.py中父路径是path("htmxFunctions", include(...)),没有末尾斜杠
  • htmx_urls.py中子路径是path("test", ...)
  • 两者拼接后有效URL是/htmxFunctionstest,但你请求的是/htmxFunctions/test/,自然返回404。

修复步骤

1. 修正父路径的URL配置

修改my_app/urls.py中的htmx路由,给父路径加上末尾斜杠:

# my_app/urls.py
urlpatterns = [
    path("", views.index, name="index"),
    ...
    # htmx-funktionen
    path("htmxFunctions/", include("my_app.htmx.htmx_urls")),  # 新增末尾斜杠
]

2. 调整子路径(按需处理斜杠)

此时子路径path("test", views.test, name="test")对应的有效URL是/htmxFunctions/test。如果你的htmx请求是hx-post="/htmxFunctions/test/",Django默认开启的APPEND_SLASH设置会自动重定向到不带斜杠的版本(不影响功能);也可以直接给子路径加上末尾斜杠:

# my_app/htmx/htmx_urls.py
urlpatterns = [
    path("test/", views.test, name="test"),  # 新增末尾斜杠
    path("", views.index, name="htmx_index"),  # 修正重复的name属性,避免反向解析冲突
]

3. 修正重复的URL名称

注意你的htmx_urls.py里两个path都用了name="test",这会导致URL反向解析时出现冲突,必须给它们设置不同的名称,比如把第二个改成name="htmx_index"。

验证

修改完成后,hx-post="/htmxFunctions/test/"或者hx-post="/htmxFunctions/test"都能正常匹配到对应的视图函数。

内容的提问来源于stack exchange,提问作者mathis_dukatz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:00:05