我有一个Django网站运行在IIS下,在Helicon的帮助下。它位于虚拟目录中(所以,它看起来像http://mysite.com/django)。
在我的urls.py中,我有这样定义的模式:
urlpatterns = patterns('',
....
url(r'^django/status/(?P<product>.*)/$',views.status),
....
)但是,当我像http://mysite.com/django/status/some_product一样打开url时,我得到了带有消息的404页:
Using the URLconf defined in urls, Django tried these URL patterns, in this order:
....
The current URL, status/some_product/, didn't match any of these.如您所见,URL中没有经过测试的django。当然,当我改变模式时:
url(r'^status/(?P<product>.*)/$',views.status),一切都正常,但是如果启用了APPEND_SLASH (我启用了它并将其设置为settings.py中的False ),我的请求(比如http://mysite.com/django/status/some_product )将被重定向到http://mysite.com/status/some_product/。
因此,问题是:我如何配置Django,使它不会抛出虚拟目录名?
关于如何使用APPEND_SLASH,有什么我需要知道的吗?现在,我只将APPEND_SLASH = False放在settings.py中,但没有区别。
注意:我对Django和Python几乎一无所知,我无法改变该网站的设置方式(至少现在是这样)。
发布于 2013-11-15 12:16:48
最后,我发现了它的问题所在。
所描述的行为的原因似乎是默认web.config文件提供的设置:
<add name="django.root" value="%APPL_VIRTUAL_PATH%" /> 在我把它拿掉后一切都开始正常了。
这里是与应用于Apache的django.root变量有关的一些信息。
https://stackoverflow.com/questions/17837546
复制相似问题