Consulta cómo servir contenido estático de forma segura, como archivos HTML, CSS e imágenes, desde el entorno estándar de Google App Engine.
Antes de empezar
Configura tu entorno de desarrollo y crea tu proyecto de App Engine.
Si usas un nombre de dominio personalizado para tu sitio web, sigue las instrucciones para añadir un dominio personalizado a tu proyecto.
Servir una página web
App Engine puede servir contenido estático, como páginas HTML y contenido multimedia, como imágenes. El contenido estático es cualquier elemento que no se ejecute como JSPs o Servlets.
El siguiente ejemplo es una página HTML básica que muestra un mensaje de bienvenida.
<!DOCTYPE html>
<html>
<head>
<title>The App Engine Blog</title>
</head>
<body>
<h1>Welcome to the App Engine Blog</h1>
<p>This is being served by App Engine!</p>
</body>
</html>
Dónde colocar los archivos estáticos
Debes colocar los archivos estáticos servidos en el directorio webapp
de tu aplicación. Puedes usar carpetas, pero recuerda que todas las rutas de archivo y los URIs son relativos al directorio webapp
.
Después de elegir una ubicación para los archivos estáticos, debes definir su ubicación en el archivo appengine-web.xml
mediante el elemento <static-files>
.
En el ejemplo siguiente, una configuración básica de appengine-web.xml
trata todos los archivos HTML del directorio webapp
como archivos estáticos.
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<threadsafe>true</threadsafe>
<runtime>java8</runtime>
<static-files>
<include path="/**.html" >
</include>
</static-files>
</appengine-web-app>
Puedes tener varios elementos <include path>
que hagan referencia a diferentes directorios y tipos de archivo. Ampliando el ejemplo anterior:
<static-files>
<include path="/**.html" >
</include>
<include path="/images/**.jpg" >
</include>
</static-files>
Ahora, todos los archivos con la extensión .jpg
del directorio webapp/images/
se tratarán como archivos estáticos.
En el ejemplo anterior, si quisiéramos mostrar logo.jpg
del directorio webapp/images
, la etiqueta <img>
tendría el URI de origen <img src="/images/logo.jpg">
.
Forzar HTTPS en todo el contenido estático
Aunque App Engine admite el servicio de contenido mediante HTTP o HTTPS, te recomendamos que uses HTTPS. Para configurar URLs seguras, debes añadir un elemento <security-constraint>
al archivo web.xml
de tu proyecto. Aquí tienes un ejemplo de <security-constraint>
:
<security-constraint>
<web-resource-collection>
<web-resource-name>blog</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Si usas <transport-guarantee>CONFIDENTIAL</transport-guarantee>
, todas las solicitudes se redirigen automáticamente al URI HTTPS del contenido estático.
Desplegar en App Engine
Puedes desplegar tu aplicación en App Engine con Maven.
Ve al directorio raíz de tu proyecto y escribe lo siguiente:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto. Si tu archivo pom.xml
ya especifica tu ID de proyecto, no es necesario que incluyas la propiedad -Dapp.deploy.projectId
en el comando que ejecutes.
Una vez que Maven haya desplegado tu aplicación, se abrirá automáticamente una pestaña del navegador web con tu nueva aplicación. Para ello, escribe lo siguiente:
gcloud app browse
Siguientes pasos
Los archivos estáticos se pueden usar para publicar imágenes, hojas de estilo en cascada y contenido HTML estático a través de App Engine. Para ampliar tus conocimientos, puedes consultar cómo gestionar datos de usuario mediante formularios HTML.