我正在将应用程序(Sage)从Twisted迁移到Django。
静态文档目前在/doc/static
下提供,而实时(即时构建)文档在/doc/live
下提供。
是否可以使用Twisted仅提供/doc/static
,让Django为其余/doc/*
提供服务?
答案 0 :(得分:3)
查看this link如何在Twisted上运行Django :(从博客中复制的说明)
使用以下代码创建myapp.py:
来自django.core.handlers.wsgi导入WSGIHandler
application = WSGIHandler()
导出DJANGO_SETTINGS_MODULE = foo.settings
在评论中还有一个例子,说明如何在请求传递给Django之前直接使用Twisted提供媒体:
要处理媒体文件,请使用 “static.File”来自“twisted.web”之类的 so:staticrsrc = static.File(os.path.join(os.path.abspath则( “”), “mydjangosite / media”))然后添加 该资源到您的根资源 像这样:root.putChild(“media”, staticrsrc)
免责声明:我自己没试过,但博客文章似乎很新,作者愿意回答问题。
编辑:还有另一篇关于这个主题的文章,附有关于如何使其工作的说明here,其中似乎包括直接使用Twisted服务静态文件。
答案 1 :(得分:2)
可以做到,优雅的程度只是变化......我明白这是为了过渡,所以它可能不一定非常漂亮。
如果你必须让Twisted服务于静态文件,那么你要么必须在django中一起攻击那些文件的代理通过,要么在整个事情面前抛出一些东西。与VPATH的Perlbal也可以做到这一点,它将采用正则表达式的网址,并让他们找到合适的服务。
如果您不必使用Twisted,则有很多不同的方法可以使用它。您仍然可以使用Perlbal或类似的东西来提供静态文件,从长远来看,无论如何都应该有。
答案 2 :(得分:-1)
除非我误解了这个问题,为什么不简单地将/ doc / static url重写为Twisted,直到它到达Django(即在Apache /代理级别)?