cherrypy和Django:这可能吗?

时间:2013-10-08 17:06:43

标签: django static wsgi cherrypy

我正在努力寻找我的Django项目如何通过cherrypy提供静态文件...尝试搜索发现了这么多解决方案......没有用......然后突然只是通过使用cherrypy的wsgiserver和来自django的collectstatic一切正常....这是正确的吗?为什么每个人都为此提出不同的解决方案?

我的server.py

__author__ = 'avlahop'
######################################################
#Trying to make cherrypie work with Django           #
######################################################


#needed for environ set and python path
import os
import sys

import cherrypy.wsgiserver as wsgiserver

import django.core.handlers.wsgi

from django.core.servers.basehttp import run, WSGIServerException
from django.core.handlers.wsgi import WSGIHandler

import rhombus
import rhombus.settings
#import webbrowser
import cherrypy

os.environ['DJANGO_SETTINGS_MODULE'] = 'rhombus.settings'
app_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.dirname(app_dir))


if __name__ == '__main__':
    print 'To exit close this window'
    app = WSGIHandler()
    server = wsgiserver.CherryPyWSGIServer(
        ('0.0.0.0', 8000),
        app,
        server_name='www.django.example',
        numthreads=20,
    )

    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()

它正常提供静态文件,但我无法访问它们。例如,如果我尝试访问

http://mysite/static/main.css 

其中主css在static /文件夹中我从django得到一个错误,它可以在我的urls.py中找不到它。你能解释一下这是正常的行为吗?

1 个答案:

答案 0 :(得分:0)

您的问题中缺少信息。例如,如何配置其余的应用程序。

将cherrypy用作网络服务器是完全合理的,但您的解决方案实际上并不是为您的collectstatic命令发送它们的文件提供服务。您是否在“调试”模式下运行。

最后,您的目标是使用此产品来生产高容量网站吗? (不是一个好主意)作为一个小型的小型内部项目?