Google App Engine SDK: CSS や JS などの静的ファイルを利用する
CSS や JS(JavaScript)などの静的な外部ファイルを利用するには、まず app.yaml の handlers セクションで静的ファイルを含むディレクトリのパスなどを定義する必要があるらしい。Using Static Files - Google App Engine - Google Code を参考にやってみた。
CSS ファイルの利用
今回は外部 CSS ファイルで試してみました。
1. app.yaml の変更
handlers:
- url: /css
static_dir: css
- url: /.*
script: helloworld.py
上から順にマッチするかテストされるので、/css から始まる URL にリクエストがあると、css ディレクトリにあるファイルから適当なファイルを探すようになるらしい。……が、
<class 'google.appengine.tools.dev_appserver.InvalidAppConfigError'>: regex invalid: unbalanced parenthesis
というエラーが出てうまくいきませんでした。代わりに次のようにしてみたら動いた:
- url: /css/(.*\.css)
static_files: css/\1
upload: css/(.*\.css)
app.yaml の書き方については、Configuring an App - Google App Engine - Google Code を参照。
2. css の作成
外部スタイルシートを作成して、css ディレクトリに保存。
/* 例です */
body {
background: #eaeaea;
color: #333333;
}
#title {
color: #333399;
font-style: italic;
}
3. テンプレートの変更
テンプレートファイルの index.html の head 要素に CSS へのリンクを追加。
<head>
<link type="text/css" rel="stylesheet" href="/css/test.css" />
</head>
こんな感じで JavaScript や Flash なんかも利用可能になるらしいです。
メモ
MIME タイプ
MIME タイプは基本的に拡張子を元に決定される。追加オプションで変更することも可能。
参考: Configuring an App - Google App Engine - Google Code
関連記事
- Google App Engine に登録してみた
- Google App Engine SDK: Hello, World! を表示させるまで
- Google App Engine SDK: webapp フレームワーク
- Google App Engine SDK: テンプレートの使用
スポンサード リンク
app.yaml の変更
はじめまして。
.css ファイルをなかなか別ファイルにできずにあきらめかけて
いたのですが、参考になりました。 ありがとうございました。
Re: app.yaml の変更
お役に立てて何よりです。
kwさんのサイト、RSS リーダーに登録させていただきました。
これから Datastore API の勉強をしようと思っていたので、参考にさせていただきます。
writeback message: Ready to post a comment.
- [Preview]ボタンをクリックすると、コメント内容をプレビューすることができます(JavaScript使用)。
- スパム対策としてリファラチェックを行っています。セキュリティソフトの設定でリファラを無効にしていると投稿できません。
- エントリの内容と無関係と思われるコメントやトラックバックは削除されます。
- 当ブログへの言及リンクがないトラックバックはブロックされます。



