1

私は現在、サブドメイン ルーティング用の appengine の比較的新しい概念であるモジュールを使用しています。スタイルシートや画像などの静的リソースは、使用している「管理」モジュールではなく、「デフォルト」モジュールでのみ読み込まれるように見えることを除いて、すべて正常に機能します。

デフォルト モジュールの yaml ファイル app.yaml は次のとおりです。

    application: check4se
    version: v1
    runtime: python27
    api_version: 1
    threadsafe: true

    automatic_scaling:
     max_idle_instances: 20

    handlers:


   - url: /stylesheets
     static_dir: stylesheets
     expiration: "1s"

   - url: /images
     static_dir: images
     expiration: "1s"

   - url: /js
     static_dir: js


   - url: .*
     script: Main2.app

    libraries:
     - name: jinja2
     version: latest

モジュール admin の私の admin.yaml は次のとおりです:-

     application: check4se
     module: admin
     version: v1
     runtime: python27
     api_version: 1
     threadsafe: false

     automatic_scaling:
     min_idle_instances: 2

     handlers:

     - url: .*
       script: admin.app


     - url: /_ah/login_required
       script: do_openid_login.py

すべての静的リソースをデフォルト モジュールにルーティングするために、dispatch.yaml を使用しています。

      application: check4se

      dispatch:


      - url: "admin.check4se.appspot.com/*"
        module: admin

      - url: "*/images"
        module: default

      - url: "*/stylesheets"
        module: default

      - url: "*/js"
        module: default

問題と回避策は何ですか。

4

1 に答える 1

3

admin.yaml の .* ハンドラーは /_ah/login_required パスと一致していると思われるため、/_ah/login_required パスは決して一致せず、do_openid_login.py を呼び出すこともありません。

代わりに、/_ah/login_required ハンドラーを .* ハンドラーの前に置きます。

 application: check4se
 module: admin
 version: v1
 runtime: python27
 api_version: 1
 threadsafe: false

 automatic_scaling:
 min_idle_instances: 2

 handlers:

 - url: /_ah/login_required
   script: do_openid_login.py

 - url: .*
   script: admin.app

さらに、dispatch.yaml で同様の問題が発生している可能性があります。

最初に静的リソース パスを配置することをお勧めします。そうしないと、管理ドメインのすべてが管理リソースに移動し、デフォルト リソースには移動しなくなります。

  application: check4se

  dispatch:

  - url: "*/images"
    module: default

  - url: "*/stylesheets"
    module: default

  - url: "*/js"
    module: default

  - url: "admin.check4se.appspot.com/*"
    module: admin
于 2013-11-13T04:12:20.717 に答える