首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django在IIS下(使用HeliconZoo)在虚拟目录中- urls解析器使用没有目录名的路径。

Django在IIS下(使用HeliconZoo)在虚拟目录中- urls解析器使用没有目录名的路径。
EN

Stack Overflow用户
提问于 2013-07-24 14:51:26
回答 2查看 873关注 0票数 1

我有一个Django网站运行在IIS下,在Helicon的帮助下。它位于虚拟目录中(所以,它看起来像http://mysite.com/django)。

在我的urls.py中,我有这样定义的模式:

代码语言:javascript
复制
urlpatterns = patterns('',
    ....        
    url(r'^django/status/(?P<product>.*)/$',views.status),
    .... 
)

但是,当我像http://mysite.com/django/status/some_product一样打开url时,我得到了带有消息的404页:

代码语言:javascript
复制
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。当然,当我改变模式时:

代码语言:javascript
复制
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几乎一无所知,我无法改变该网站的设置方式(至少现在是这样)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 12:16:48

最后,我发现了它的问题所在。

所描述的行为的原因似乎是默认web.config文件提供的设置:

代码语言:javascript
复制
<add name="django.root" value="%APPL_VIRTUAL_PATH%" />          

在我把它拿掉后一切都开始正常了。

这里是与应用于Apache的django.root变量有关的一些信息。

票数 0
EN

Stack Overflow用户

发布于 2016-03-07 14:44:07

我注意到动物园有两种运行模式。

模块

应用程序

由于我的项目需要第二个(wsgi_app),我注意到这个问题并不是通过设置变量django.root来解决的。

也就是说,在第二种模式的环境变量配置中存在一个缺陷。因此,我创建了解决这个错误的项目海龙-动物园

现在不需要在django urls中输入站点前缀,zoofcgi模块已经在环境变量中解决了它。

我希望这个项目能对将来的人有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17837546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档