2011-03-25 13 views
5

Estoy comenzando a aprender cherrypy pero me he topado con una barricada. No puedo obtener archivos estáticos para salvar mi vida. Obtengo un 404. The path '/static' was not found. He buscado en Google sin embargo, todavía tengo que encontrar una solución. Todo lo que quiero hacer es servir archivos en http://localhost:8080/staticNo se pueden servir archivos estáticos de cherrypy

¿Sugerencias?

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() 

Respuesta

6

Algunas ideas:

  1. En CherryPy 3.2+, tratar tools.staticdir.debug = True, combinados con log.screen = True o alguna otra configuración de registro de calidad. Eso ayudará más que cualquier cosa que pueda adivinar en esta respuesta.
  2. Probar tools.staticdir.dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static')); necesita ser absoluto (o, si .dir no es absoluto, entonces tools.staticdir.root debe estar).
  3. En CherryPy 3.1 y superior, normalmente necesita llamar a engine.block() después de engine.start().
+0

He añadido las líneas de depuración y registro y la ruta de su comprobación es absoluta. Aquí está el mensaje: 'Comprobando archivo: e: \\ python \\ cherrypyapp \\ static \\' Comprobé doblemente esa ruta y es correcta, pero sigo obteniendo un 404 – Kylee

+1

¿Está realmente navegando a 'http: // localhost: 8080/static', como si estuviera tratando de obtener una lista de directorios en su navegador? La herramienta staticdir no proporciona páginas de índice para los archivos a los que sirve; debe solicitar un archivo individual, no un directorio. – fumanchu

+0

Fue el engine.block() que lo hizo. ¡Gracias! – Kylee

Cuestiones relacionadas