2008-12-07 6 views
0

Je viens de configurer mod python avec apache et j'essaye de faire fonctionner un simple script, mais ce qui se passe c'est qu'il publie tout mon html en texte brut quand je charge la page. J'ai pensé que c'est un problème avec mod_python.publisher, Le gestionnaire je l'ai mis aussi. J'ai cherché à travers la source et trouvé la ligne où il différencie 'text/plain' et 'text/html' et il recherche les 100 derniers caractères du fichier qu'il est en train de sortir 'dans mon script, donc je l'ai mis dedans, et puis ça n'a toujours pas marché. J'ai même essayé de commenter une partie du code pour que l'éditeur mette tout en 'text/html' mais il a quand même fait la même chose quand j'ai rafraîchi la page. Peut-être que j'ai mis en place quelque chose de mal.mod_python.publisher donne toujours le type de contenu 'text/plain'

Heres ma configuration dans le httpd.conf

< Répertoire "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug Sur
</Répertoire>

+0

Quel est le problème avec mod_wsgi? Quel est le problème avec un framework de serveur web plus complet comme Django? –

Répondre

3

Votre configuration l ça va bien: j'ai un script qui fonctionne avec mod_python.publisher avec les mêmes paramètres.

Quelques autres pensées:

  • Lorsque vous essayé de modifier le code source de l'éditeur, avez-vous redémarrer votre serveur web? Il ne charge qu'une seule fois les bibliothèques Python au démarrage du serveur. L'autodétection de l'éditeur recherche une balise HTML de fermeture: </html >. Est-ce ce que vous avez ajouté? (Je ne peux pas le voir dans votre question, mais peut-être qu'il a été supprimé lorsque vous l'avez posté.)

  • Si rien d'autre ne fonctionne, vous pouvez toujours définir explicitement le type de contenu. C'est plus de code, mais il est garanti de fonctionner de manière cohérente. Définissez le champ content_type de votre requête sur "text/html".

Par exemple, si votre script ressemble à ce moment:

def index(req, an_arg='default'): 
    return some_html 

il deviendrait:

def index(req, an_arg='default'): 
    req.content_type = 'text/html' 
    return some_html 
Questions connexes