سؤال

لقد قمت للتو بإعداد mod python مع apache وأحاول تشغيل برنامج نصي بسيط، ولكن ما يحدث هو أنه ينشر كل HTML الخاص بي كنص عادي عندما أقوم بتحميل الصفحة.اعتقدت أن هذه مشكلة في mod_python.publisher، لقد قمت بتعيين المعالج أيضًا.لقد بحثت في مصدره ووجدت السطر الذي يفرق فيه بين "نص/عادي" و"نص/html" ويبحث في آخر مائة حرف من الملف الذي يخرج لـ "في البرنامج النصي الخاص بي، لذا قمت بوضعه، وبعد ذلك ما زال لا يعمل.حتى أنني حاولت التعليق على بعض الأكواد البرمجية حتى يقوم الناشر بتعيين كل شيء على أنه "نص/html" لكنه ظل يفعل نفس الشيء عندما قمت بتحديث الصفحة.ربما قمت بإعداد شيء خاطئ.

هذا هو التكوين الخاص بي في ملف httpd.conf

< الدليل "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
تشغيل تصحيح بايثون
< /الدليل>

هل كانت مفيدة؟

المحلول

التكوين الخاص بك يبدو بخير:لقد حصلت على برنامج نصي mod_python.publisher يعمل بنفس الإعدادات بشكل أساسي.

بعض الأفكار الأخرى:

  • عندما حاولت تحرير التعليمات البرمجية المصدر للناشر، هل قمت بإعادة تشغيل خادم الويب الخاص بك؟يقوم بتحميل مكتبات Python مرة واحدة فقط، عند بدء تشغيل الخادم لأول مرة.

  • يبحث الاكتشاف التلقائي للناشر عن علامة HTML للإغلاق:</html>.هل هذا ما أضفته؟(لا أستطيع رؤيته في سؤالك، ولكن ربما تم إزالته للتو عندما نشرته.)

  • إذا لم ينجح أي شيء آخر، فيمكنك دائمًا تعيين نوع المحتوى بشكل صريح.إنها تحتوي على المزيد من التعليمات البرمجية، ولكنها مضمونة للعمل باستمرار.قم بتعيين حقل content_type في طلبك إلى "text/html".

على سبيل المثال، إذا كان البرنامج النصي الخاص بك يبدو هكذا الآن:

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

سيصبح:

def index(req, an_arg='default'):
    req.content_type = 'text/html'
    return some_html
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top