0

ファイルとフォルダ構造

次のディレクトリ構造があります。

[アプリルート]
| |
|---[静的]
    | |
    |--- [css]
    |--- [画像]
    |--- [js]
         |--- [アプリ]
         |--- [ライブラリ]
         |--- main.js
         |--- require.js

App.yaml

ハンドラーのapp.yaml構成static_dirは、異なる有効期限に設定されています。

application: my-app-name
version: 1
runtime: python27
api_version: 1
threadsafe: true

default_expiration: "10d"

handlers:
- url: /favicon\.ico
  static_files: static/img/favicon.ico
  upload: static/img/favicon\.ico
  expiration: "364d"

- url: /static/img
  static_dir: static/img
  expiration: "364d"
  http_headers:
    X-Static-Img: Moo1

- url: /static/css
  static_dir: static/css
  expiration: "15m"
  http_headers:
    X-Static-Css: Moo2

- url: /static/js/app
  static_dir: static/js/app
  expiration: "15m"
  http_headers:
    X-Static-Js-App: Moo4

- url: /static/js/libs
  static_dir: static/js/libs
  expiration: "7d"
  http_headers:
    X-Static-Js-Libs: Moo5

- url: /static/js
  static_dir: static/js
  expiration: "15m"
  http_headers:
    X-Static-Js-Root: Moo3

- url: /static
  static_dir: static
  expiration: 12d
  http_headers:
    X-Static-ROOT: MOOOOOOOOOOO COW

HTTP ヘッダー

/static/css - 初めて

リクエスト URL:http://localhost:8080/static/css/bootstrap.min.css
リクエスト方法:GET
ステータスコード:200 OK

======================
   リクエスト ヘッダー
======================
Accept:text/css,*/*;q=0.1
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip、deflate、sdch
Accept-Language:en-US,en;q=0.8
接続:キープアライブ
Cookie:dev_appserver_login="test@admin.com:True:113617613220115205203"
DNT:1
ホスト: ローカルホスト:8080
リファラー:http://localhost:8080/
ユーザーエージェント:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (Gecko のような KHTML) Chrome/26.0.1410.65 Safari/537.31

======================
   応答ヘッダー
======================
キャッシュ制御:キャッシュなし
コンテンツの長さ:103314
コンテンツタイプ:text/css
日付:2013 年 5 月 6 日月曜日 17:46:22 GMT
ETag:"MTgwMTU4MDk3NA=="
有効期限:1990 年 1 月 1 日金曜日 00:00:00 GMT
サーバー:開発/2.0
X-Static-Css:Moo2

/static/css - 後続のリクエスト

リクエスト URL:http://localhost:8080/static/css/bootstrap.min.css
リクエスト方法:GET
ステータス コード:304 変更されていません

======================
   リクエスト ヘッダー
======================
Accept:text/css,*/*;q=0.1
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip、deflate、sdch
Accept-Language:en-US,en;q=0.8
キャッシュ制御:最大年齢=0
接続:キープアライブ
Cookie:dev_appserver_login="test@admin.com:True:113617613220115205203"
DNT:1
ホスト: ローカルホスト:8080
If-None-Match:"MTgwMTU4MDk3NA=="
リファラー:http://localhost:8080/
ユーザーエージェント:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (Gecko のような KHTML) Chrome/26.0.1410.65 Safari/537.31

======================
   応答ヘッダー
======================
日付:2013 年 5 月 6 日月曜日 17:53:20 GMT
ETag:"MTgwMTU4MDk3NA=="
サーバー:開発/2.0

問題

最初のリクエストでは、ExpiresヘッダーはFri, 01 Jan 1990 00:00:00 GMT過去に設定されています。少なくともに基づいて、将来に
設定する必要があると思います。"15m"app.yaml

ただし、後続のすべてのリクエストは のみを使用してETagを取得しHTTP 304 Not Modifiedます。ヘッダーが完全に欠落しています
Expires

私は何か間違ったことをしていますか?

ありがとう、
ソエ

4

1 に答える 1

2

dev_appserver2 に問題があります。私はあなたと同じものを見ます。

古い dev_appserver を使用している場合、最初のリクエストで適切な有効期限ヘッダーを使用していますが、追加のヘッダーは設定していません。

私は 304 応答でも期限切れのヒーアーを見ていませんが、それは問題ないようです.

古い dev_appserver は本番環境の動作に近くなっていますが、生成されるヘッダーにはまだ若干の違いがあります。

于 2013-05-07T16:48:50.280 に答える