我在对齐书店上写了一个网络服务应用程序。这个应用程序可以作为我们服务器上的几个实例找到。
例如:
http://server1/testapp/
http://server2/sandboxapp/
http://server2/productionapp/
应用程序实例通过 Mod_wsgi 以 apache2 托管 。
我对所有这些实例都使用 cookie 认证, 希望每个实例的 cookie 不与其他实例重叠。 我需要设定会话_ COOKIE_ PATH 值 。
发生的情况是,我事先不知道应用程序的部署背后的 URL 。 所以我想用反向的 URL 来猜这个值 。
我的主 urls. py
看起来像这个 :
urlpatterns = patterns( ,
(r admin/ , include(admin.site.urls)),
url(r ^$ , view_server_root, {}, name= server_root ),
),
# here I also includes urls from the various sub-apps
for app in apps:
urlpatterns.append(url(urlprefix, include(app.urls))
我加了这个位子,因为所有的泌尿素都装满了:
from django.core import urlresolvers
from django.conf import settings
settings.SESSION_COOKIE_PATH = urlresolvers.reverse( server_root )
不幸的是, urlresolvers. reverse(服务器_root)
return / <
返回 /
, 而不是预期的(例如) /testapp/
。 如果我登录到每个实例, 我的 cookie会重叠 。
虽然后来在应用程序的使用中,我对某些视图使用django.db.models.permalink
,这让我返回一个正确的前缀URL(例如 /testappp/page/465
)。
执行 urls.py
时可能缺少上下文。
有什么想法吗?
谢谢你看书