2009-09-10 6 views

Répondre

2

Il peut être fait, le degré d'élégance varie ... Je comprends c'est la transition, il pourrait ne pas avoir à être très belle.

Si vous devez avoir Twisted au service des fichiers statiques, alors vous devez soit bidouiller ensemble dans django un proxy-through pour ces fichiers, soit lancer quelque chose devant le tout. Aussi Perlbal avec VPATH pourrait le faire, il faudra des expressions rationnelles d'urls et les faire frapper les bons services. Si vous n'avez pas besoin d'utiliser Twisted, il existe de nombreuses façons de le faire. Vous pouvez toujours utiliser Perlbal ou quelque chose de similaire pour servir des fichiers statiques, quelque chose que vous devriez avoir à long terme.

+1

Nous incluons Twisted comme un moyen pratique d'héberger le carnet Sage, donc la deuxième option est hors de question. Il est plausible de tester les requêtes de Django à Twisted, mais il semble que cela annule l'amélioration des performances en permettant à Twisted de les servir directement. Je vais faire quelques repères. Merci! –

-1

A moins d'avoir mal compris la question, pourquoi ne pas simplement réécrire l'URL/doc/static à Twisted avant même qu'elle n'atteigne Django (c'est-à-dire au niveau Apache/proxy)?

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

+0

Nous utilisons Twisted pour servir nos fichiers, sans autre couche d'abstraction - au moins pour les installations locales. Utiliser '' mod_rewrite'' est donc impossible. –

3

Jetez un oeil à this link sur la façon d'exécuter Django au-dessus de Twisted: (instructions copiées à partir du blog)

  1. easy_install Twisted
  2. easy_install Django
  3. Profit!
  4. django-admin.py startproject foo
  5. Créer un myapp.py avec le code suivant:

    de WSGIHandler import django.core.handlers.wsgi

    application = WSGIHandler()

  6. export DJANGO_SETTINGS_MODULE = foo.settings

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

Plus bas dans les commentaires il y a aussi un exemple de la façon de servir les médias directement avec Twisted avant que la demande est transmise à Django:

Pour gérer vos fichiers multimédias utilisent simplement « static.File » de "twisted.web" comme donc: static.File (os.path.join (os.path.abspath (". ressource comme ça: root.putChild (« médias », staticrsrc)

Disclaimer: Je n'ai pas essayé moi-même, mais l'article du blog semble assez récent et l'auteur prêt à répondre aux questions.

EDIT: Il y a aussi un autre article écrit sur le sujet avec des instructions pour le faire fonctionner here, ce qui semble inclure des fichiers statiques de service avec Twisted directement.

+0

Le premier lien est en panne. – g19fanatic

Questions connexes