Django项目点击跳转其他html文件返回404错误,求解决方案
第一步:修正项目根目录下的urls.py配置
你之前的代码混淆了根路由和APP路由的配置,根路由只需要保留下面的内容即可,不要把APP的路由或者视图代码写在这里:
from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static admin.autodiscover() urlpatterns = [ path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')), path('secret/', admin.site.urls), path('home/', include("portfolio_django.urls")), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
第二步:在portfolio_djangoAPP目录下新建urls.py文件,填入以下内容
你之前所有路由都用空路径'',Django只会匹配第一个路由,其余路由永远不会触发,需要给每个页面对应独立的路径:
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('contact/', views.contact, name='contact'), path('project/', views.Portfolio, name='Project') ]
第三步:修正视图名匹配问题
你原本APP路由里写的是调用views.Project,但实际views.py里对应的函数名是Portfolio,上面第二步的代码已经修正了这个调用名的大小写不一致问题,直接复用即可。
第四步:修正页面跳转的链接写法
不要直接跳转xxx.html的文件路径,Django不会直接响应静态html文件的访问请求,所有跳转都要走路由名,页面里的跳转链接改成用Django模板的url标签:
- 首页跳转:
<a href="{% url 'home' %}">首页</a> - 联系页跳转:
<a href="{% url 'contact' %}">联系我们</a> - 项目页跳转:
<a href="{% url 'Project' %}">项目展示</a>
如果是硬写链接的话,对应路径是/home/、/home/contact/、/home/project/,不要加.html后缀。
改完之后重启服务即可正常访问各个页面。
内容的提问来源于stack exchange,提问作者SeemsToBeStuck
相关产品推荐
相关产品推荐

