2010-11-10 4 views
2

J'ai une application web sur CherryPy. J'essaye de configurer un dossier de css à employer sur toutes les applications mais je ne peux pas. Ceci est mon fichier de configuration:Comment définir un fichier statique sur un fichier de configuration cherrypy?

[global] 
server.socket_host = "127.0.0.1" 
server.socket_port = 8090 
server.thread_pool = 10 
server.logToScreen = 0 

[/main.css] 
tools.staticfile.on = True 
tools.staticfile.filename = "E:\apyb\main.css" 

Si je mets config sur le code à la place sur un fichier, il fonctionne très bien:

conf = { 
    '/main.css': { 
    'tools.staticfile.on': True, 
    'tools.staticfile.filename': os.path.join(os.path.dirname(__file__), 'main.css'), 
    } 
} 

Comment puis-je configurer le fichier de chemin?

J'utilise CherryPy 3.1.2 sur Windows 7.

Répondre

1

fichiers de configuration de CherryPy utiliser la syntaxe Python pour les valeurs. Ainsi, tout comme en Python, quand vous entrez dans une chaîne anti-slash, il peut les interpréter comme des caractères de contrôle:

>>> "E:\apyb\main.css" 
'E:\x07pyb\\main.css' 
>>> print "E:\apyb\main.css" 
E:pyb\main.css 

La solution est de doubler les barres obliques:

>>> "E:\\apyb\\main.css" 
'E:\\apyb\\main.css' 
>>> print "E:\\apyb\\main.css" 
E:\apyb\main.css 

Faites la même chose dans votre config fichier:

[/main.css] 
tools.staticfile.on = True 
tools.staticfile.filename = "E:\\apyb\\main.css" 
+0

Cela ne fonctionne pas. Le serveur a renvoyé un 404 au chemin http://127.0.0.1:8090/main.css – jaloplo

+0

Passez-vous le fichier de configuration à 'quickstart()'? ou 'tree.mount()'? – fumanchu

+0

cherrypy.quickstart – jaloplo

Questions connexes