2013-10-08 2 views
0

Я боролся, чтобы узнать, как мой проект Django будет обслуживать статические файлы через вишневый ... Пробовал поиск, нашел так много решений ... не работал ... Тогда вдруг просто используя wsgiserver от cherrypy и collectstatic от django, все сработало. ...Это правильно? Почему все предлагают разные решения для этого?cherrypy и Django: Возможно ли это?

мой 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 

где главный КСС в статической/папке я получаю сообщение об ошибке из Джанго, что она не может найти, что нигде в моем urls.py. Не могли бы вы объяснить мне, это нормальное поведение?

+0

Зачем вам нужно использовать две каркасы? Я бы избегал этого, если вообще возможно –

+0

Я не использую весь вишневый каркас. Просто wsgiserver черри. Мне нужен проект django для установки в windows. – Apostolos

ответ

0

Информация отсутствует на вашем вопрос. Например, как настроить остальные настройки приложения.

Совершенно разумно использовать cherrypy в качестве веб-сервера, но ваше решение фактически не служит для работы с файлами, откуда их посылает команда collectstatic. Вы работаете в режиме «отладки».

И, наконец, ваша цель использовать это производство для сайта с большим объемом? (не очень хорошая идея). Как небольшой небольшой объемный проект?

+0

вы правы :). Это не так. Но я исправил это :). Я сделал приложение, которое берет STATIC_ROOT проекта django и обслуживает все по пути STATIC_URL. Затем я использовал WSGIPathInfoDispatcher, чтобы отправить его на вишневый wsgiserver. Работал как шарм. Я был основан на модуле django-wsgiserver. Проект не предназначен для производства. Но он будет развернут в окнах. Он упакован с использованием py2exe, в exe-файл, который запускает сервер cherrypy. – Apostolos

Смежные вопросы