我已经使用mod wsgi在Apache服务器上部署了一个Django项目,使用前缀URL/mysite
,即我的Apache配置包含
WSGIScriptAlias /mysite /var/www/mysite/mysite/wsgi.py
当从web服务器进程调用reverse('myview')
(from django.core.urlresolvers
)时,它返回预期的URL /mysite/myview
,即包括前缀URL。在
但是,当从脚本(例如cronjob)调用reverse('myview')
时,不通过web服务器进程,只返回{
当在web服务器上下文之外运行时,有没有一种方法可以包含前缀URL,以便相同的reverse('myview')
代码可以从两个上下文中运行并返回相同的值?在
Django在web请求的上下文中只需要一个
SCRIPT_NAME
。它从WSGI环境或FORCE_SCRIPT_NAME
设置中检索,并为请求的持续时间设置。在要手动设置脚本名称,请使用
set_script_prefix()
:请注意,这是1)一个私有的、未记录的函数,2)存储在线程局部变量中。在
相关问题 更多 >
编程相关推荐