在 /about/ 找不到页面。当前路径 about/ 与其中任何一个都不匹配。为什么 django 不能遵循我的 URL 路径?

Page not found at /about/. The current path, about/, did not match any of these. Why can't django follow my URL path?

我确定这个问题之前已经被问过很多次,但我确定我完全按照教程所说的做所有事情,但它仍然无法正常工作。我可以正常访问主页,但不能访问关于页面。

错误截图如下:

https://i.stack.imgur.com/oFNAJ.png

我的 .urls 文件(下面的文件)中有 URL 路径

from django.urls import path
from . import views

urlpatterns = [
    path('', views.homepage, name='main-home'),
    path('about/', views.about, name='main-about'),
]

并且在 .urls 文件中我引用了 .views 文件(如下)

from django.shortcuts import render
from django.http import HttpResponse


def homepage(request):
    return HttpResponse('<h1>Home</h1>')


def about(request):
    return HttpResponse('<h1>About</h1>')

我可能遗漏了一些明显的东西,但我已经盯着它看了好几个小时了,但仍然不明白为什么它找不到该页面。

编辑:我指的是主 post 中的应用程序 url 文件。如果它有用,这里是项目 .urls 文件:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('homepage/', include('home.urls')),
]

根据您复制的图片,您访问的是 localhost:8000/about,而不是 loaclhost:8000/homepage/about,我认为如果您现在访问的话 return 您的“关于”视图 HttpResponse 对象。

主站点 urls.py 正在引用 'homepage/',因此对于具有该前缀的任何内容,它将查看您的应用程序 urls.py 中的附加路径 objects/parameters。尝试:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('home.urls')),
]

然后 prefixed 你的 urlhomepage 一样

localhost:8000/homepage/about/

最好在 templates 中为 urls 使用 {% url %} [Django-doc] 模板标签,它会指向您的 correct url,即使您更改了 url 路径但同名。