2008-10-02 17 views
7

Estoy trabajando en un proyecto de motor de aplicación de Google.¿Está cargando imágenes junto con el motor de la aplicación de Google?

Mi aplicación funciona y se ve correctamente a nivel local, pero cuando intento cargar imágenes en un directorio de imágenes, no se muestran en appspot.

como un pequeño problema, puse una página html en "/images/page2.html" y puedo cargar esa página en el sitio de aplicaciones, pero mis páginas no muestran mis imágenes. Entonces, no es un problema con mi camino.

Como otro control de cordura, también estoy cargando un directorio de hoja de estilo con el código .css y que se está leyendo correctamente.

Tengo la sospecha de que el problema radica en mi archivo yaml.

¿Alguna idea?

No quiero pegar todo el código aquí, pero aquí están algunas de las líneas clave. los primeros dos funcionan bien. el tercero no funciona.

<link type="text/css" rel="stylesheet" href="/stylesheets/style.css" /> 
<a href="/images/Page2.html">Page 2</a> 
<img src="/images/img.gif"> 

Este es mi archivo app.yaml

application: myApp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /stylesheets 
    static_dir: stylesheets 

- url: /images 
    static_dir: images 

- url: /.* 
    script: helloworld.py 
+0

Hola, ¿ha resuelto su problema? ¿Te importa compartir cómo lo resuelves? – GMsoF

Respuesta

2

apuesto a que su problema es que se está utilizando Windows.

Si ese es el caso, creo que necesita una barra anterior para su valor static_dir.

+0

Ahora que es interesante - Acabo de entrar en el trabajo, y ahora quiero ir a casa para probar esto. Volveré a verificar (pero podría ser lunes) con una actualización. Por cierto, ¿hay documentación sobre lo que estás hablando que podría haber pasado por alto en alguna parte? – Baltimark

0

@jamtoday La barra diagonal precedente no hizo la diferencia, pero sí me ayudó a entender qué debe decirse cada aplicación acerca de la estructura de mi directorio.

Por lo tanto, no tengo nada concluyente que agregar, pero quería hacer un seguimiento, porque lo conseguí trabajando, pero no exploré todos los problemas después de hacerlo funcionar.

Un cambio que ayudó fue dejar de trabajar desde un directorio HwlloWorld/src/y comenzar a trabajar en el directorio HelloWorld /. Parece que dev_appserver recogió todas las dependencias, pero el servidor remoto no. Esencialmente, la ruta relativa de mis enlaces locales no coincide con la ruta relativa de los enlaces después de la carga.

También me di cuenta de que dev-appserver se basa en el archivo .yaml, así como en el script appcfg. Es decir. . .si agrega un directorio a su proyecto y luego intenta vincularlo con los archivos de ese directorio, necesita agregar el directorio al archivo .yaml y luego reiniciar el dev-appserver para retomar esto.

Por lo tanto, probablemente haya formas de manejar lo que originalmente estaba tratando de hacer si le da al archivo .yaml la información correcta, pero el cambio a una estructura de directorio diferente me lo administró localmente.

0
<img src="/images/img.gif"> 

esta línea no puede mostrarle la imagen. Prueba con esto:

1-Crear una clase para manejar "solicitud de imagen"

class GetImage(webapp.RequestHandler): 
     def get(self): 
     self.response.headers['Content-Type'] = 'image/jpg' 
     self.response.out.write(image_object) 

2-En su pagina.html:

<img src="/image" 

3-En la función principal en su código.PY:

application = webapp.WSGIApplication(('/image', GetImage), debug=True) 

divertirse

+0

¿Está escrito su "2" por completo o se cortó? Parece que estás tratando de hacer una clase general de GetImage, pero ¿dónde le dices la imagen real? ¿Qué pasa si quiero mostrar "image1.jpg" en un lugar, y "image2.jpg" en el otro? ¿Cuáles son las llamadas html? – Baltimark

1

Estoy usando la versión de Java de App Engine, y me enfrenté a problemas similares con el servidor que no puede mostrar imágenes estáticas.

Lo que funcionó en última instancia fue cambiar el archivo de configuración de App Engine "appengine-web.xml" en mi caso para contener

<static-files> 
<include path="**.*"/> 
    <include path="/images/**.*" /> 
</static-files> 

Mis imágenes están en el directorio/imágenes y HTML y CSS se encuentra. directorio que está en el nivel WEB-INF

Cuestiones relacionadas