使用Django作为Cappuccino的后端

2 投票
2 回答
1624 浏览
提问于 2025-04-15 14:47

我刚接触Django和Cappuccino这两个东西。我已经通过Apache和mod_wsgi搭建好了一个Django网站,并且它可以正常运行。我想把Django当作Cappuccino应用的后台,但是在Apache和mod_wsgi中设置的虚拟主机会把静态文件放在一个和正常网站根目录不同的地方(比如说 http://example.com/media/ 或者 http://media.example.com)。

我该怎么设置环境,让 http://example.com 可以提供我的Cappuccino的JavaScript/HTML/CSS文件,同时又能让我使用Django的常规URL系统来创建AJAX调用的接口(比如说 http://example.com/some/json/)呢?

2 个回答

0

这是我找到的一个有效的配置:

Django 媒体设置:

MEDIA_ROOT = '/Users/Me/Development/Web Projects/mysite/mysite/public_html'
MEDIA_URL = 'http:/mysite.local/'
ADMIN_MEDIA_PREFIX = '/'

Apache 虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin webmaster@mysite.local
    ServerName mysite.local
    ErrorLog "/private/var/log/apache2/mysite.local-error_log"
    CustomLog "/private/var/log/apache2/mysite.local-access_log" common
    WSGIScriptAlias / "/Users/Me/Development/Web Projects/MySite/django.wsgi"
    <Directory "/Users/Me/Development/Web Projects/MySite/">
        Allow from all
    </Directory>
    AliasMatch ^/(.*\.[A-Za-z0-9]{1,5})$ "/Users/Me/Development/Web Projects/MySite/public_html/$1"
    <Directory "/Users/Me/Development/Web Projects/MySite/public_html">
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

简单来说,这个设置会把任何带有文件扩展名的请求(我把扩展名限制在5个字符以内)当作静态文件来处理,而其他的请求则会发送到我的 Django 应用程序。

1

你有没有看过:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

这篇文章详细讲了如何使用WSGIScriptAlias来配置mod_wsgi,以及如何使用Alias指令来处理静态文件。

我建议你先看看这篇文章,或者再读一遍,然后把你已经尝试过的配置发出来,这样可以帮助大家理解你想做什么,然后就能更好地帮你纠正问题。

撰写回答