2016-09-08 1 views
0

竜巻に基づいてuサービスを構築しています。すべてのuServicesに共通するいくつかのルートがあり、当面はhealthdocsです。ドキュメントルートはSwaggerを使用して作成されています。つまり、スワッガールートと関連する資産は、私たち共通のライブラリの一部です(しかし、uService関連のドキュメントではありません)。これは単にuServicesの要件です。竜巻のいくつかの静的ディレクトリ

スワッガーには静的資産が必要で、各uServiceにも独自の静的資産が必要なため、問題があります。静的資産はまったく異なる2つの場所から来ています。両方のソースから、それらの静的な資産をコピーし、展開uServiceレポ

  • に共通のレポで

    1. トラック静的資産
    2. トラック静的な資産を:私はこれを解決するためにハック(非常に不便)を発見しましたそれはPIP-インストールを伴うため、配備静的フォルダに、
    3. 3は非常に複雑であるstatic_path

    ステップとして配備静的フォルダを指定(およびNO衝突が存在しないことを願って)共通ライブラリ、そこに(すでにハック)の資産を見つけること、そして周りにコピーする:

    • がインストールライブラリ(site-packages)の位置については、ピップ
    • 表情で共通ライブラリをインストール
    • コピー

      :静的な資産template_pathで起こるように、アプリケーションごとの静的なフォルダを持つことが可能であろう、あればそれははるかに容易になるだろう

    展開静的フォルダへ
    > Return None to load templates relative to the calling file. 
    

    私はウェブを検索しており、this is not possibleと思われますが、私は二重チェックしたいと思います。

    パッケージ化されたPythonモジュールからアセットを抽出する作業を簡略化することができますが、site-packagesvirtualenvのハック検索を繰り返す必要はありません。

  • 答えて

    1

    それはstatic_path設定でこれを実行することはできませんが、限り、あなたはstatic_url()機能を必要としないよう、あなたのURLSpecリストに複数のStaticFileHandlerエントリを作成することができますの代用として

    Application([ 
        ('/static1/(.*)', tornado.web.StaticFileHandler, dict(path='static1')), 
        ('/static2/(.*)', tornado.web.StaticFileHandler, dict(path='static1')), 
    ]) 
    

    static_urlの場合は、StaticFileHandler.make_static_urlに電話して、static_pathを使用していた場合はグローバルになっていた引数を渡すことができます。

    関連する問題