2009-06-03 18 views
5

मैं अजगर में लिखा मिल गया था की सेवा नहीं, एक बहुत ही सरल http सर्वर, यह do_get विधि इस तरह दिखता है:कस्टम सरल पायथन HTTP सर्वर सीएसएस फ़ाइलें

def do_GET(self): 
     try: 
      self.send_response(200) 
      self.send_header('Content-type', 'text/html') 
      self.end_headers(); 
      filepath = self.path 
      print filepath, USTAW['rootwww'] 

      f = file("./www" + filepath) 
      s = f.readline(); 
      while s != "": 
       self.wfile.write(s); 
       s = f.readline(); 
      return 

     except IOError: 
      self.send_error(404,'File Not Found: %s ' % filepath) 

ठीक काम करता है, इस तथ्य के अलावा - यह है कि किसी भी सीएसएस फाइलों की सेवा नहीं कर रहा है (इसे सीएसएस के बिना प्रस्तुत किया जाता है)। किसी को भी इस quirk के लिए एक सुझाव/समाधान मिला है?

सादर, praavDa

+0

त्वरित सुझाव: Google चेरीपी। – Triptych

+0

** पुराने धागे को चेतावनी ** उसी निर्देशिका में .css फ़ाइल को संग्रहीत करने का प्रयास करें जहां आपकी HTML फ़ाइल स्थित है। – noobninja

उत्तर

6

यह सभी फ़ाइलों के लिए एचटीएमएल माइम प्रकार लौटने किया जा रहा है:

self.send_header('Content-type', 'text/html') 

इसके अलावा, यह बहुत बुरा हो रहा है। आप इस चूसने वाले सर्वर में रुचि क्यों रखते हैं? HTTP सर्वर के अच्छे पायथन कार्यान्वयन और अध्ययन के लिए एक अच्छा कोड के लिए चेरीपी या पेस्ट देखें।


संपादित: आप के लिए इसे ठीक करने की कोशिश कर रहा:

import os 
import mimetypes 

#... 

    def do_GET(self): 
     try: 

      filepath = self.path 
      print filepath, USTAW['rootwww'] 

      f = open(os.path.join('.', 'www', filepath)) 

     except IOError: 
      self.send_error(404,'File Not Found: %s ' % filepath) 

     else: 
      self.send_response(200) 
      mimetype, _ = mimetypes.guess_type(filepath) 
      self.send_header('Content-type', mimetype) 
      self.end_headers() 
      for s in f: 
       self.wfile.write(s) 
+3

है, मैं इस चतुरता का उपयोग कर रहा हूं, क्योंकि यह मेरे प्रोजेक्ट का विषय है - मुझे पाइथन में http सर्वर लिखना होगा। जवाब के लिए धन्यवाद। – praavDa

9

आप स्पष्ट रूप से Content-type: text/html है, जहां आप Content-type: text/css के रूप में सीएसएस फ़ाइलों की सेवा के लिए जरूरत के रूप में सभी फाइलों को सेवा कर रहे हैं। विवरण के लिए this page on the CSS-Discuss Wiki देखें। वेब सर्वर में आमतौर पर फ़ाइल एक्सटेंशन से सामग्री-प्रकार में मैप करने के लिए एक लुकअप तालिका होती है।

+3

पायथन में मॉड्यूल mimetypes में लुकअप टेबल –

2

एक सुरक्षित, saner कार्यान्वयन है कि आप अगर आप की जरूरत है अनुकूलित कर सकते हैं के लिए मानक पुस्तकालय में SimpleHTTPServer.py देखें।

+0

इस लिंक के लिए धन्यवाद - अब मैं थोड़ा और जानता हूं कि मैं अपना खुद का लिख ​​सकता हूं। – praavDa

संबंधित मुद्दे