为什么在 '$' return 之后包含 '/' 的 URL 会出现找不到页面错误 (404)

Why does a URL containing '/' after a '$' return a Page Not Found Error (404)

我遇到 Django URL 模式的问题。

当我在索引 URL 的末尾添加“/”时,页面 returns 出现 404 错误(未找到页面)并且如果我从末尾删除“/”的 URL 那么页面工作正常。

管理页面的 URL 无法重现该问题,有人可以解释这是怎么回事吗?

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$/',index),
]

$:代表字符串的end,所以,后面不可能有一个字符living

Matches the end of the string or just before the newline at the end of the string

^ 匹配字符串的开头,所以根 urls.py 中的 ^$ 对 Django 意味着:我不想要任何东西 URL 除了域名/基本名称 然后 Django 会将请求路由到您的索引页面。

url django.conf.urls 包的方法接受正则表达式作为第一个参数

$ 在正则表达式中表示字符串的 end 因此之后的任何字符都不会被视为匹配 url 字符串。

$ 之后的任何字符都不会被考虑在 url 模式中 因此将其更改为:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^/$',index),
]

据我了解,在 django urls:

'$' : 字符串结尾,这是在正则表达式中使用

'^' :它也用于正则表达式匹配 url

的开始