这几天快被Django的url问题搞崩溃了,现象分两种。

1、最严重的,在view里面redirect相对路径,会重定向到127.0.0.1导致无法访问

这个问题是因为Apache的项目部署配置缺少了反向代理ProxyPassReverse:


<VirtualHost *:80>
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    ServerName sadpast.com
</VirtualHost>

2、Django默认应该会有APPEND_SLASH,就是为没有末尾斜杠“/”的url自动加上,比如访问http://sadpast.com/login会自动重定向到http://sadpast.com/login/,现在的问题是被301重定向到了http://127.0.0.1:8080/login/,怎么改urls.py都没用,尤其是在解决了上面的反向代理问题之后,这个现象更显诡异,让人怀疑是APPEND_SLASH的实现问题。

罢了,今天到此为止,好在这个问题不影响功能继续开发。

更新:

好吧,改了个跳转的逻辑回头一看问题2居然好了,估计是缓存的原因,真是坑爹~

希望现在可以稳定,可以安心睡觉了。接下来需要解决文件上传的问题。