Django部署到Apache后出现的访问失败的问题

在将Django项目部署到Apache服务器并设置根目录为ip:port/es/后,发现URL路由如'/test/search/'和'/search/'无法匹配到相应的视图。尽管在本地环境中这些URL工作正常,Apache日志显示错误:'Target WSGI script not found or unable to stat: /data/mdata/es/essite/essite/wsgi.pysearch.html'。这表明可能存在的问题是URL配置或Apache配置的不兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django写一个web,运维给部署到Apache之后给的根目录是ip:port/es/ 

urls.py中如下配置

可以访问到login

但是像如下这种匹配就都匹配不上

url(r'^/test/search/$', views.search)

url(r'^/search/$', views.search),

url(r'search/$', views.search),

访问失败

本地测试环境下都能匹配成功,实在困惑。一直以为是urls写错了,本地各种测试都通过。

细思之后觉得如果本地测试没问题,部署到Apache之后出错,那么问题肯定出在Apache配置上,天杀的没有Apache权限,运维又懒得鸟我,一个几个小时就可以完成的环境配置拖了我半个多月,我是不指望运维能帮我做什么了。
自己干!问运维要到Apache目录,直接看日志。

Apache日志报如下错误:

Target WSGI script not found or unable to stat: /data/mdata/es/essite/essite/wsgi.pysearch.html

然后查了下django Apache部署的文档,又Google了一下这个错误,发现一个同样的错误,定位到问题就出在httpd.conf上,直接看这个文件,果然配置如下:
WSGIScriptAlias /es/ /data/mdata/es/essite/essite/wsgi.py
修改策略是:
WSGIScriptAlias /es /data/mdata/es/essite/essite/wsgi.py
然后磨叽运维给改,Done!解决!
可是明明django官网文档上的配置要求es之后有个"/"的啊,为什么这里要去掉呢?不明白求解


附stackoverflow链接:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值