Estoy usando webpy framefork. Quiero servir el archivo estático en una de las solicitudes. ¿Hay algún método especial en el marco de webpy o simplemente tengo que leer y devolver ese archivo?¿Cómo se sirve el archivo en webpy?
Respuesta
Si está ejecutando el servidor dev (sin apache):
Crear un directorio (también conocida como una carpeta) llamado estático en la ubicación de la secuencia de comandos que se ejecuta el servidor web.py. A continuación, coloque los archivos estáticos que desea publicar en la carpeta estática.
Por ejemplo, la URL http://localhost/static/logo.png enviará la imagen ./static/logo.png al cliente.
Referencia: http://webpy.org/cookbook/staticfiles
actualización. Si realmente necesita para servir a un archivo estático en /
sólo tiene que utilizar un redireccionamiento:
#!/usr/bin/env python
import web
urls = (
'/', 'index'
)
class index:
def GET(self):
# redirect to the static file ...
raise web.seeother('/static/index.html')
app = web.application(urls, globals())
if __name__ == "__main__": app.run()
Luché con esto durante el último par de horas ... ¡qué asco!
encontrado dos soluciones que están trabajando para mí ... 1 - .htaccess en añadir esta línea antes de la línea modrewrite:
RewriteCond %{REQUEST_URI} !^/static/.*
Esto se asegurará de que las peticiones al/directorio/estática son NO reescrito para ir a tu script code.py
2 - en el code.py agregar un controlador de estática y una entrada de URL para cada uno de varios directorios:
urls = (
'/' , 'index' ,
'/add', 'add' ,
'/(js|css|images)/(.*)', 'static',
'/one' , 'one'
)
class static:
def GET(self, media, file):
try:
f = open(media+'/'+file, 'r')
return f.read()
except:
return '' # you can send an 404 error here if you want
Nota - robé esto desde el grupo web.py google pero no puede encontrar la ¡Dang Post más!
Cualquiera de estos funcionó para mí, tanto dentro de las plantillas para web.py y por un llamado directo a una página web que he puesto en "estática"
¿Vio algún beneficio de estos métodos en http://webpy.org/cookbook/staticfiles? – dimo414
Lo hice funcionar, no pude conseguir que otros métodos funcionaran, así que supongo que es una ventaja ;-) Estaba trabajando en una cuenta de alojamiento compartido, así que puede haber sido una de mis dificultades. –
@tom - gracias! me salvaste un par de horas con esta publicación. – incognick
No recomiendo servir archivos estáticos con Web .py. Será mejor que tengas apache o nginx configurado para eso.
¿por qué no? sería beneficioso comprender tus razones. – Octopus
Porque será lento –
- 1. ¿Cómo se sirve un archivo con JSP? .
- 2. webpy: Cómo servir JSON
- 3. IIS: no se sirve un archivo .ini
- 4. ¿Para qué sirve el archivo NW MainWindow.xib?
- 5. ¿Para qué sirve el archivo Nuget repositories.config?
- 6. Webpy: cómo configurar el código de estado http a 300
- 7. ¿Para qué sirve el archivo .la de libtool?
- 8. ¿Para qué sirve un archivo .dbml.layout?
- 9. ¿Para qué sirve el archivo Makefile Target `.c.o`?
- 10. django return file over HttpResponse - el archivo no se sirve correctamente
- 11. ASP.NET MVC no sirve el documento predeterminado
- 12. ¿Cómo se sirve contenido estático con JAX-RS?
- 13. ¿Cómo se sirve un archivo .dmg a través de PHP/readfile?
- 14. Cambiar la ruta del directorio estático en webpy
- 15. ¿Para qué sirve el operador "==="?
- 16. ¿Para qué sirve la firma MZ en un archivo PE?
- 17. sem_init (...): ¿Para qué sirve el parámetro pshared?
- 18. marca de tiempo SSMA. ¿Para qué sirve? ¿Cómo se usa?
- 19. ¿Para qué sirve el símbolo $ en JavaScript
- 20. ¿Para qué sirve el tilde o el apóstrofo en Ada?
- 21. ASP.NET MVC: ¿Cómo se sirve el contenido al devolver el código de estado 404?
- 22. ¿Para qué sirve __path__?
- 23. ¿Para qué sirve el atributo citar?
- 24. Google app engine users Auth: Djangoappengine Vs Web2py Vs Webpy
- 25. ¿De qué sirve "stdafx.h" en Visual Studio?
- 26. System.Web.Abstractions: ¿para qué sirve?
- 27. ¿Para qué sirve el modificador 'asmlinkage'?
- 28. ASP.NET MVC3: ¿Para qué sirve el paquete.config?
- 29. ¿Para qué sirve UnmanagedMemoryStream?
- 30. JSON RPC - ¿Para qué sirve el "id"?
que solo sirve archivos en/ruta estática, necesito servir index.html a petición con ruta/ – codez
@codez: actualicé mi respuesta. – miku
esto solo funciona si ejecuta la aplicación web.py directamente desde la carpeta donde se encuentra. si quieres ejecutar /path/to/my/web/app.py, no tienes suerte. – Octopus