在“混合”目录中运行Django

时间:2011-08-04 20:37:39

标签: django iis directory-structure

是否有一种直接的方法来设置Django来操作一个目录或一组目录,这些目录或目录也可以提供其他类型的内容?

现在我有一个主要运行ColdFusion页面的网络服务器,但我想开始将一些部分移到Django上。但是,由于现有的目录结构,将所有Django内容放在一个Web路径中并不理想。理想情况下,我希望能够继续使用原始目录结构,而不是必须使用大量重定向。

有没有办法让Django与其他东西玩得很好,或者它是否需要自己的root才能开心?我能想到的唯一其他解决方案是仔细配置Web服务器,并在必要时有目的地回避Django(例如,指示它手动处理带有文件扩展名的任何内容,或者忽略某些目录)。

如果发生这种情况,这将在IIS上。

3 个答案:

答案 0 :(得分:0)

您可以随意配置Django中的URL。看看URL dispatcher。比如你的网站www.example.com,你决定使用Django开发/ wiki和/ blog。您可以将IIS配置为将这些网址重定向到Django,而其余的www.example.com/everythingelse则由Coldfusion或其他任何网址提供。

即使是混合网址方案,也可以使用/ store / mycoldfusion-product-view和/ store / django-product-view,但这需要一些花哨的重定向代码,具体取决于您的设置。

答案 1 :(得分:0)

听起来好像你可以控制什么时候服务。如果是这种情况,您是否可以使用反向代理来分割命名空间?我通过很多不同的项目来做这件事;我使用nginx,告诉它“这些路径适用于Wordpress,这些路径适用于Django,这些路径适用于图像和其他静态内容。”

这是让Django“玩得很好”的绝佳方式,只要你有一个训练有素的方法将一些路径转换成其中一个路径。

答案 2 :(得分:0)

另一种设置方法是菊花链: 网络服务器 - > django - >响应中间件 - > subprocess / pipe / httplib - > ColdFusion的。

响应中间件将伪代码如下: 如果[ok响应列表]中的response.code:   返回 其他:   叫做coldfusion

这种方法的优点是你可以以任何你想要的速度转换。缺点是它不是一个简单的配置,菊花链本质上是脆的,菊花链可能会断裂。