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
Configure o ambiente de programação e crie o projeto do App Engine.
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.xml
já
especificar 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.