Introdução: publicação de conteúdo estático

Saiba como publicar conteúdo estático, como ficheiros HTML, CSS e imagens, de forma segura a partir do ambiente padrão do Google App Engine.

Antes de começar

  1. Configure o ambiente de programação e crie o projeto do App Engine.

  2. Se estiver a usar um nome de domínio personalizado para o seu Website, siga as instruções para adicionar um domínio personalizado ao seu projeto.

Publicar uma página Web

O App Engine pode publicar conteúdo estático, como páginas HTML, e conteúdo multimédia, como imagens. O conteúdo estático é tudo o que não é executado como JSPs ou Servlets.

O exemplo seguinte é uma página HTML básica que mostra uma mensagem de boas-vindas.

<!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>

Onde colocar os ficheiros estáticos

Tem de colocar os ficheiros estáticos publicados no diretório webapp da sua app. Pode usar pastas, mas lembre-se de que todos os caminhos de ficheiros e URIs são relativos ao diretório webapp.

Depois de escolher uma localização para os ficheiros estáticos, tem de definir a respetiva localização no ficheiro appengine-web.xml, através do elemento <static-files>.

No exemplo abaixo, uma configuração appengine-web.xml básica trata todos os ficheiros HTML no diretório webapp como ficheiros 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>

Pode ter vários elementos <include path> que referenciam diretórios diferentes e diferentes tipos de ficheiros. Expandindo o exemplo anterior:

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

Agora, todos os ficheiros com a extensão .jpg no diretório webapp/images/ vão ser tratados como ficheiros estáticos.

No exemplo acima, se quiséssemos apresentar logo.jpg a partir do diretório webapp/images, a etiqueta <img> teria o URI de origem <img src="/images/logo.jpg">.

Forçar o HTTPS para todo o conteúdo estático

Embora o App Engine suporte a publicação de conteúdo através de HTTP ou HTTPS, deve usar HTTPS. Para configurar URLs seguros, tem de adicionar um elemento <security-constraint> ao web.xml do seu projeto. Aqui pode ver um exemplo 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>

Ao usar <transport-guarantee>CONFIDENTIAL</transport-guarantee>, todos os pedidos são automaticamente redirecionados para o URI HTTPS do conteúdo estático.

Implementação no App Engine

Pode implementar a sua app no App Engine através do Maven.

Aceda ao diretório raiz do seu projeto e escreva:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Substitua PROJECT_ID pelo ID do seu Google Cloud projeto. Se o seu ficheiro pom.xmlespecificar o seu ID do projeto, não precisa de incluir a propriedade -Dapp.deploy.projectId no comando que executar.

Depois de o Maven implementar a sua app, é aberto automaticamente um separador do navegador de Internet na nova app. Para tal, escreva:

gcloud app browse

O que se segue?

Os ficheiros estáticos podem ser usados para publicar imagens, folhas de estilo em cascata e conteúdo HTML estático através do App Engine. Para ampliar os seus conhecimentos, recomendamos que consulte a secção sobre como processar dados do utilizador através de formulários HTML.