Gestione dei file statici


Questa parte della procedura dettagliata del codice del guestbook Python mostra come gestire i file statici. App Engine non pubblica i file direttamente dalla directory di origine dell'applicazione, a meno che non sia configurata in tal modo. Tuttavia, in molti casi vuoi pubblicare file statici direttamente nel browser web. Immagini, fogli di stile CSS, codice JavaScript, filmati e animazioni Flash vengono generalmente archiviati in un'applicazione web e pubblicati direttamente nel browser.

Questa pagina fa parte di un tutorial multi pagina. Per partire dall'inizio e vedere le istruzioni per la configurazione, vai a Creare un guestbook.

Configurazione dell'app per l'utilizzo di file statici

I file CSS per l'app Guestbook si trovano nella directory bootstrap/css. Il modello per la pagina web dell'app, index.html, indica al browser di caricare bootstrap.css e bootstrap-responsive.css, che sono file statici:

<link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap.css">
<link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap-responsive.css">

Il file app.yaml specifica la directory bootstrap come posizione per i file statici:

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /bootstrap
  static_dir: bootstrap

- url: /.*
  script: guestbook.app

La sezione handlers definisce due gestori per gli URL. Quando App Engine riceve una richiesta di un URL che inizia con /bootstrap, mappa gli elementi rimanenti del percorso ai file nella directory bootstrap e, se viene trovato un file appropriato, i contenuti di tale file vengono restituiti al client. Tutti gli altri URL corrispondono al pattern /.* e sono gestiti dall'oggetto app nel modulo guestbook.

I pattern del percorso dell'URL vengono testati nell'ordine in cui appaiono in app.yaml. In questo caso, il pattern /bootstrap corrisponde prima del pattern /.* per i percorsi appropriati. Per ulteriori informazioni sul mapping degli URL e su altre opzioni che puoi specificare in app.yaml, consulta il riferimento app.yaml.