Seite 1 von 1

Ma wieder n paar Probleme mit CherryPy :'(

Verfasst: Dienstag 20. Februar 2007, 16:44
von EnTeQuAk
Ma schaun, ob ihr mir wiedermal helfen könnt ;)


Ich habe ein kleines Problem mit Statischem Content bei CP 3.

Funktionieren tut es... aber net so, wie es soll ;)

Folgendes funktioniert z.B. wunderbar:

Code: Alles auswählen

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import cherrypy, os, sys
from utils import render_to_response

class Root(object):
    def index(self):
        return render_to_response('index.txt')
    index.exposed = True

root = Root()

cherrypy.tree.mount(root)

if __name__ == '__main__':
    current_dir = os.path.dirname(os.path.abspath(__file__))
    conf = {
        '/style.css': {
                 'tools.staticfile.on': True,
                 'tools.staticfile.filename': os.path.join(current_dir, 'templates', 'style.css')
                }
    }
    ##cherrypy.config.update(os.path.join(current_dir, 'test.conf'))
    cherrypy.quickstart(root, '/', config=conf)
Folgendes dagegen NICHT:

Code: Alles auswählen

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import cherrypy, os, sys
from utils import render_to_response

class Root(object):
    def index(self):
        return render_to_response('index.txt')
    index.exposed = True

root = Root()

cherrypy.tree.mount(root)

if __name__ == '__main__':
    current_dir = os.path.dirname(os.path.abspath(__file__))
    conf = {
        '/style.css': {
                 'tools.staticfile.on': True,
                 'tools.staticfile.filename': os.path.join(current_dir, 'templates', 'style.css')
                }
    }
    cherrypy.config.update(conf)
    cherrypy.server.quickstart()
    cherrypy.engine.start()
Die Änderung befindet sich unten, bei der Deklaration, der Configuration.
Oberes funktioniert ja einwandfrei ... aber letzteres sollte laut Doku (oder hab ich falsch gelesen) auch funktionieren... Tut es aber nicht :'( Er "mounted" jedenfalls '/style.css' nicht richtig bzw. gar nicht.


MfG EnTeQuAk

Verfasst: Dienstag 20. Februar 2007, 19:38
von EnTeQuAk
Lösung gefunden ;)

So schauts nu aus:
(der relevante Teil)

Code: Alles auswählen

def setup_standalone_server():
    """Start with the builtin server."""
    cherrypy.config.update({'log.screen': True,
                            'environment': 'production',
                            })

    conf = {
        '/style.css': {
            'tools.staticfile.on': True,
            'tools.staticfile.filename': os.path.join(current_dir, 'templates', 'style.css')
        },
        '/images': {
            'tools.staticdir.on': True,
            'tools.staticdir.dir': os.path.join(current_dir, 'templates', 'images')
        }
    }

    cherrypy.tree.mount(root, config=conf)
    cherrypy.server.quickstart()
    cherrypy.engine.start()


if __name__ == "__main__":
    setup_standalone_server()
MfG EnTeQuAk