这是一个愚蠢的问题。我刚刚创建了一个项目,并一直在努力解决这个问题。
from django.conf.urls import url
from django.views.generic import TemplateView
urlpatterns = [
url(r'^$', TemplateView.as_view(template_name="index.html")),
url(r'^about$', TemplateView.as_view(template_name="about.html")),
url(r'^contact$', TemplateView.as_view(template_name="contact.html"), name="contact"),
url(r'^test$', TemplateView.as_view(template_name="test_start"), name="test_start"),
url(r'^test/sample$', TemplateView.as_view(template_name="test_start"), name="test_start"),
]
包含在
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('frontend.urls'))
]
当我转到 localhost:8000/about 时,我被重定向到 localhost:8000/about/ 并在那里收到 404 Not Found。
更新:我在 URLconf 中添加了更多 URL。
更新 2:我的意思是不包括尾部斜线。抱歉。
更新 3:我在 Firefox 中打开了相同的 URL,该 URL 可以正常工作。这可能是重定向和浏览器缓存的问题吗?
请您参考如下方法:
您是否启用了 append_slash 设置? https://docs.djangoproject.com/en/dev/ref/settings/#append-slash
使用它可能有助于使其更明确,并在整个 django 教程中推荐使用它
url(r'^about/$', TemplateView.as_view(template_name="about.html")),
编辑:
停用 APPEND_SLASH 设置(False)并使用
url(r'^about$', TemplateView.as_view(template_name="about.html")),
