2

我正在将应用程序 ( Sage ) 从 Twisted 迁移到 Django。

静态文档当前在 .下提供/doc/static,而实时(即时构建)文档在/doc/live.

是否可以只使用 Twisted 服务/doc/static,让 Django 服务其余部分/doc/*

4

3 回答 3

3

查看有关如何在 Twisted 之上运行 Django 的链接:(从博客复制的说明)

  1. easy_install 扭曲的
  2. easy_install Django
  3. 利润!
  4. django-admin.py startproject foo
  5. 使用以下代码创建一个 myapp.py:

    从 django.core.handlers.wsgi 导入 WSGIHandler

    应用程序 = WSGIHandler()

  6. 导出 DJANGO_SETTINGS_MODULE=foo.settings

  7. twistd -no web --wsgi=myapp.application

在评论的下方还有一个示例,说明如何在将请求传递给 Django 之前直接使用 Twisted 提供媒体:

要处理媒体文件,只需使用“twisted.web”中的“static.File”,如下所示: staticrsrc = static.File(os.path.join(os.path.abspath("."), "mydjangosite/media"))然后将该资源添加到您的根资源中,如下所示: root.putChild("media", staticrsrc)

免责声明:我自己没有尝试过,但博客文章似乎很新,作者愿意回答问题。

编辑:还有另一篇关于该主题的文章,其中包含有关如何使其在此处工作的说明,其中似乎包括直接使用 Twisted 服务静态文件。

于 2009-09-11T07:39:08.117 回答
2

可以,优雅的程度不一样……我知道这是为了过渡,所以不一定要很漂亮。

如果你必须让 Twisted 为静态文件提供服务,那么你要么必须在 django 中为这些文件创建一个代理,要么在整个事情前面扔一些东西。带有 VPATH 的 Perlbal 也可以做到这一点,它会采用正则表达式的 url 并使它们命中正确的服务。

如果您不必使用 Twisted,有很多不同的方法可以做到这一点。你仍然可以使用 Perlbal 或类似的东西来提供静态文件,从长远来看你应该拥有的东西。

于 2009-09-10T13:36:09.953 回答
-1

除非我误解了这个问题,否则为什么不简单地将 /doc/static url 重写为 Twisted 甚至在它到达 Django 之前(即在 Apache / 代理级别)?

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

于 2009-09-10T13:32:33.900 回答