Django项目导航栏跳转返回404找不到x.html页面问题求助
问题排查及解决方案
访问方式错误
必须通过Django启动的本地服务访问页面(默认地址为http://127.0.0.1:8000),如果直接双击打开本地的navbar.html文件,Django模板标签{% url %}不会被解析渲染,会直接作为普通字符串处理,跳转路径会变成无效的本地文件路径,触发找不到对应html文件的404错误。文件名大小写不匹配
Django在Linux、MacOS等类Unix系统下对文件名大小写敏感,检查模板目录下的页面文件名,必须和views.py中render函数的第二个参数完全一致:education视图对应文件名需为Education.htmlexperience视图对应文件名需为Experience.htmlportfolio视图对应文件名需为Portfolio.html
如果实际文件为全小写命名,直接修改views.py参数与文件名保持一致即可。
模板搜索路径配置异常
首先检查settings.py的INSTALLED_APPS列表是否已注册blog_level应用,只有完成注册的应用,Django才会自动搜索应用下的templates目录。
如果模板文件存放在项目根目录的templates文件夹下,需要在settings.py的TEMPLATES配置中添加对应路径:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
- URL后缀配置问题
确认settings.py中APPEND_SLASH参数值为True(默认配置即为True),否则点击导航链接跳转到不带末尾斜杠的路径(如/education)时会直接返回404。
内容的提问来源于stack exchange,提问作者yedx_1_10
相关产品推荐
相关产品推荐

