python – django.core.urlresolvers.resolve apache非root部署
发布时间:2020-12-20 13:22:09 所属栏目:Python 来源:网络整理
导读:当 django应用程序部署在非root apache url下(使用WsgiScriptAlias / suburl /path_to_django.wsgi)时,{%url%}标记和django.core.urlresolvers.reverse函数会考虑SCRIPT_NAME变量并返回url表格/ suburl / path_to_my_view 但是,当我使用django.core.urlres
当
django应用程序部署在非root apache url下(使用WsgiScriptAlias / suburl /path_to_django.wsgi)时,{%url%}标记和django.core.urlresolvers.reverse函数会考虑SCRIPT_NAME变量并返回url表格/ suburl / path_to_my_view
但是,当我使用django.core.urlresolvers.resolve函数来解析这些URL时,它会抛出一个错误.这迫使我在调用resolve之前剥离生成的url的SCRIPT_NAME.这是预期的行为还是我误解了一切? 问候. 解决方法
我遇到了同样的问题:
>我的apache配置中定义了SCRIPT_NAME 我设法使用下一行代码自动添加前缀: # in settings.py from django.core.urlresolvers import set_script_prefix ... FORCE_SCRIPT_NAME = "your-prefix" set_script_prefix(FORCE_SCRIPT_NAME) ... 第一行确保您的wsgi每次都使用您的前缀.第二个设置前缀,以便反向找到它. 请注意,您需要在apache conf中使用相同的前缀.它有点多余,但我找到了更清洁的修复. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |