【问题标题】:Smoothly converting a static website to Django将静态网站顺利转换为 Django
【发布时间】:2013-05-18 10:12:14
【问题描述】:

我目前有一个简单的 apache /var/www 设置。我在一个目录中有一堆静态 HTML 文件(我们称之为/var/www/mydir),它们显示在http://mysite.com/mydir/filename.htm。

现在,我想开始在 http://mysite.com/ 上提供 Django 内容(通过 virtualenv),但是我希望 http://mysite.com/mydir/ 继续提供它以前使用的静态 HTML。

有什么方法可以配置 Apache 在 http://mysite.com/* 链接的情况下调用 Django,并在 http://mysite.com/mydir/* 链接的情况下提取静态 HTML?

如果没有,我如何告诉 Django 为 `http://mysite.com/mydir/* 链接提供来自 /var/www/mydir 的 HTML 文件?

【问题讨论】:

    标签: django apache2 virtualenv mod-wsgi


    【解决方案1】:

    实际上,您根本不需要 Django 来提供静态内容。出于性能原因,当不在 DEBUG = True 中运行时,框架甚至不会这样做。

    您只需将 Apache 配置为具有从 /mydir 到 /var/www/mydir 的 URL 的 Alias。

    【讨论】:

    • 使用 virtualenv 设置,与 Apache AFAICT 没有连接。 Django 似乎只在端口 80 上侦听(所以如果我保持 Apache 开启可能会发生冲突)。有什么方法可以让 Django 和 Apache 一起工作?
    • manage.py runserver,它监听自己的端口,仅用于开发。当迁移到“真正的”网络服务器时,Apache 和 Django 之间的通信是通过一种称为 WSGI 的界面样式完成的。关于这个主题有很多话要说,但如果你用谷歌搜索“Django mod_wsgi”,你就能找到要领。
    • 子 URL 的 Alias 指令优先于根 URL 的 WSGIScriptAlias。所以定义别名工作正常。见code.google.com/p/modwsgi/wiki/…
    • 另一种方法是将 Apache 设置为仅在未在 DocumentRoot 中找到静态文件匹配时将请求发送到 mod_wsgi 下的 WSGI 应用程序。见code.google.com/p/modwsgi/wiki/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2013-11-29
    相关资源
    最近更新 更多