2011-03-25 4 views
5

Je commence à apprendre cherrypy mais j'ai couru à un barrage routier. Je ne peux pas obtenir de fichiers statiques pour me sauver la vie. Je reçois un 404. The path '/static' was not found. J'ai googlé mais je n'ai pas encore trouvé de solution. Tout ce que je veux faire est de servir des fichiers à http://localhost:8080/staticJe ne peux pas servir les fichiers statiques de cherrypy

Suggetions?

import os 
import cherrypy 

class Root(object): 
    @cherrypy.expose 
    def index(self): 
     pass 

config = { 
    '/static':{ 
    'tools.staticdir.on': True, 
    'tools.staticdir.dir': os.path.join(os.path.dirname(__file__), 'static') 
    } 
} 

cherrypy.tree.mount(Root(), '/', config = config) 
cherrypy.engine.start() 

Répondre

6

Quelques idées:

  1. En CherryPy 3.2+, essayez tools.staticdir.debug = True, combinés avec log.screen = True ou une autre configuration de l'exploitation forestière favorite. Cela aidera plus que tout ce que je peux deviner dans cette réponse.
  2. Essayez tools.staticdir.dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static')); il doit être absolu (ou, si .dir n'est pas absolu, alors tools.staticdir.root doit l'être).
  3. Dans CherryPy 3.1 et versions supérieures, vous devez généralement appeler engine.block() après engine.start().
+0

J'ai ajouté les lignes de débogage et de journal et le chemin sa vérification est absolue. Voici le message: 'Vérification du fichier: e: \\ python \\ cherrypyapp \\ static \\' J'ai vérifié ce chemin et c'est correct, mais je reçois toujours un 404 – Kylee

+1

Êtes-vous en train de naviguer vers 'http: // localhost: 8080/static', comme si vous essayiez d'obtenir une liste de répertoires dans votre navigateur? L'outil staticdir ne fournit pas de pages d'index pour les fichiers qu'il sert - vous devez demander un fichier individuel, pas un répertoire. – fumanchu

+0

C'était le moteur.block() qui l'a fait. Merci! – Kylee

Questions connexes