我有一个我正在尝试部署的 Django 应用程序。Apache 设置以我通过以下 URL 访问我的 wsgi 应用程序的方式进行配置:
sitename.com/~amartino
这意味着我的 public_html 目录中只有一个 wsgi.py 文件。我通过 URL 访问我的 Django 站点:
sitename.com/~amartino/expofit
因为这就是在 urls.py 中设置的方式。
urlpatterns = patterns('',
('/param_select/$',session_check(param_select)),
('registration/$',registration),
('result_show/(\d+)',session_check(result_show)),
('^expofit/$',media_clean(start)),
('result_pick/$',session_check(result_pick)),
('mail_report/$',session_check(mail_report)),
('notification/$',session_check(notification)),
但是,我遇到的问题(在开发中没有出现:))是我在views.py 中使用了硬编码的HttpResponseRedirect。
...
#If all fields are valid
return HttpResponseRedirect('/expofit/param_select/')
#else reload page
...
由于生产环境没有将我的站点放在 URL 的根目录中,因此我现在遇到错误,因为上HttpResponseRedirect
转换为
sitename.com/expofit/param_select/
Apache 无法识别。
我想我可以删除斜线并拥有:
return HttpResponseRedirect('expofit/param_select/')
这将导致:
sitename.com/~amartino/expofit/registration/expofit/param_select/
但这似乎不是正确的方法,因为我很快就会得到一个巨大的 URL。这里的设计/配置缺陷在哪里?