Google AppEngine使用一個app.yaml作為其重要的全域的設定檔。<br />每個獨立的Google AppEngine的應用,都必須聲明這樣一個檔案。</p><p>app.yaml使用YAML作為格式。熟悉Ruby的人應該非常熟悉yaml這種格式。</p><p>必添內容<br />在一個app.yaml中,必須要聲明如下欄位:</p><p>application<br />application用來唯一標示一個Google AppEngine的應用。<br />在開發環境中(使用dev_appserver.py),這個欄位必添,但其值隨意。<br />但是在部署環境中(應用上傳至Google AppEngin的host後),<br />這個值必須與你申請的Google AppEngine的那個application_id一致。</p><p>application: myapp<br />version<br />version用來標示這一個Google AppEngine應用的版本。同樣,在開發環境中,這個值可以隨意。</p><p>runtime 和 api_version<br />runtime 和 api_version標示應用將依賴於那種運行環境(runtime)的哪個版本(api_version)。<br />當前由於只支援python,因此這兩個值是固定的。</p><p>runtime: python<br />api_version: 1<br />handlers<br />handlers用來定義一系列url handlers,(類似於URL Mapping,如果你熟悉Spring MVC的話)。<br />需要為每一個handler指派一個url pattern(可以使用Regex)。<br />一旦請求的URL滿足這個pattern的時候,AppEngine便會將這個請求交由這個handler所制定的對象來處理。</p><p>當需要處理動態內容時,使用script欄位。script定義了用來處理這個請求的python檔案路徑。</p><p>handlers:<br />- url: /.*<br /> script: main.py<br />- url: /book/.*<br /> script: book.py<br />Google AppEngine在匹配url pattern的時候,使用first-match優先原則。因此上面的配置中,book.py永遠也不會被使用。</p><p>當然還可以使用<code>handler</code>處理靜態內容,如javascript指令碼,或是css檔案等。</p><p>- url: /js<br /> static_dir: /path/to/jsfolder<br />- url: /css<br /> static_dir: /path/to/cssfolder<br />static_dir標明了靜態檔案所在的目錄。<br />因此如/js/book/main.js的請求,Google AppEngine會到/path/to/jsfolder/book/main.js處尋找。