PythonAnywhere部署Django应用仅首页可用,其他页面报错求助
问题排查与解决方案
1. 先获取详细错误日志
PythonAnywhere部署时Django默认关闭DEBUG模式,不会显示具体错误信息。你需要:
- 登录PythonAnywhere控制台,找到你的Web应用
- 打开Error log文件,查看具体错误(比如404路径匹配失败、500服务器错误等),这是定位问题的核心依据
2. 修复导航链接的路径问题
当前nav.html里的链接用了硬编码相对路径(如href="contact"),当你在/home页面点击链接时,实际请求路径会变成/home/contact,而你的URL配置中没有这个路径,导致404错误。正确做法是用Django的URL反向解析:
修改nav.html:
<div class="topbar"> <header> <li><a id="TOP_name" href="{% url 'home' %}"><img src="{%static 'prasant1.png' %}" height="50"></a></li> </header> <ul> <li><a id="right" href="{% url 'contact' %}">CONTACT</a></li> <li><a id="right" href="{% url 'resume' %}">RESUME</a></li> <li><a id="right" href="{% url 'work' %}">WORK</a></li> <li><a id="right" href="{% url 'experience' %}">EXPERIENCE</a></li> <li><a id="right" href="{% url 'education' %}">EDUCATION</a></li> </ul> </div>
给URL配置添加名称(修改app的urls.py):
urlpatterns = [ path('', views.home, name='home'), path('home', views.home, name='home'), path('work', views.work, name='work'), path('resume', views.Resume, name='resume'), path('education', views.education, name='education'), path('contact', views.contact, name='contact'), path('experience', views.experience, name='experience'), ]
3. 检查关键配置项
- ALLOWED_HOSTS:在
settings.py中添加你的PythonAnywhere域名,比如ALLOWED_HOSTS = ['your-username.pythonanywhere.com'],否则会返回400错误 - 静态文件:确保已执行
python manage.py collectstatic,将静态文件收集到STATIC_ROOT目录,且settings.py中STATIC_URL和STATIC_ROOT配置正确
4. 验证视图函数与代码一致性
确认views.py中的Resume函数拼写正确(Python大小写敏感),且部署到PythonAnywhere的代码与本地运行的代码完全一致
5. 重新加载Web应用
修改代码后,在PythonAnywhere的Web应用页面点击Reload按钮,让新配置生效
内容的提问来源于stack exchange,提问作者Prasant Kumar Pradhan
相关产品推荐
相关产品推荐

