es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Google AppEngine no sirve recursos estáticos.

Tengo una aplicación de Spring Boot implementada en Google Cloud a través de AppEngine. Necesito servir recursos estáticos desde las instancias de appengine y utilicé esta documentación: https://cloud.google.com/appengine/docs/standard/java11/serving-static-files.

El problema siempre (después de realizar muchas pruebas) es (error en la consola de Google Cloud): “No se encontró el archivo estático referenciado por el controlador”.

Probé varias configuraciones pero no tuve suerte.

Mi app.yaml (último):
“`yaml
runtime: "@appengine.runtime@"
env: "standard"
entrypoint: "java -noverify -jar myjar.jar -cp BOOT-INF/classes/:BOOT-INF/lib/* com…..config.Application"
instance_class: "@appengine.instance.class@"
inbound_services:
– warmup
vpc_access_connector:
name: "projects/@cloud.application@/locations/@cloud.region@/connectors/@cloud.redis.connector@"
handlers:
– url: /resources/(.<em>)$
static_files: /static/\1
upload: /static/.</em>.(png)$
require_matching_file: false
automatic_scaling:

““
Los recursos estáticos se encuentran dentro del .jar en: BOOT-INF/classes/static.

Probé en app.yaml:

yml
- static_files: BOOT-INF/classes/static/\1
- static_files: classes/static/\1

Sin suerte.

¿Alguna idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que podría haber algún problema con la configuración de la ruta para servir recursos estáticos en tu instancia de AppEngine. Aquí hay algunos pasos de solución de problemas que podrías intentar:

    1. Verifica nuevamente la ruta de tus recursos estáticos: Asegúrate de que la ruta de tus recursos estáticos sea correcta y coincida con la ruta especificada en tu archivo app.yaml. Podrías intentar ejecutar tu aplicación localmente y acceder a los archivos estáticos para confirmar la ruta.
    2. Asegúrate de que la ruta sea relativa a la raíz de la aplicación: La ruta de tus recursos estáticos debería ser relativa a la raíz de tu aplicación. En tu archivo app.yaml, intenta usar una ruta que sea relativa a la raíz de tu archivo JAR. Por ejemplo, si tus recursos estáticos se encuentran en un directorio llamado “static” dentro de tu archivo JAR, tu archivo app.yaml debería contener algo como esto:

    handlers:
    - url: "/resources/(.*)$"
      static_files: "static/\1"
      upload: "static/.*\.(png)$"
    
    1. Confirma que los archivos estén en el directorio correcto: Asegúrate de que los archivos estáticos se estén empaquetando realmente dentro del directorio BOOT-INF/classes/static de tu archivo JAR. Podrías intentar extraer el archivo JAR para verificarlo.

    2. Verifica los registros del motor de la aplicación: Busca registros relevantes en la consola de tu App Engine para ver si hay algún error o advertencia específicos sobre la configuración de servir archivos estáticos. Esto podría ayudar a identificar la causa raíz del problema.

    Esperemos que alguno de estos pasos te ayude a resolver el problema. ¡Buena suerte!

Comments are closed.