2016-06-18 9 views
0

私は、次のような設定の辞書に静的なパスを設定します。トルネード:静的ハンドラの絶対パス

settings = { 
       "static_path": "static", 
       # rest of settings 
      } 

私は、私が使用するアプリケーションで静的パスを取得する必要があります。

self.application.settings["static_path"] 

しかし、これはディレクトリの絶対パスを与えません。 osライブラリを使わずにこのディレクトリの絶対パスを取得する方法はありますか?

答えて

2

classmethod StaticFileHandler.get_absolute_pathを使用できます。 StaticFileHandlerの中で使用されており、ファイルシステムとのやりとりを変更するためにオーバーライドされる可能性があるため、これはお勧めの方法です。それにもかかわらず、デフォルトの実装はちょうどos.path.abspathです。

+0

ありがとうございますkwarunek私は本当にこのメソッドを理解していないと言う必要があります。これはルートとパスを受け入れ、設定で設定されたstatic_pathがルートであることを示します。しかし、あなたはまだこの変数を渡す必要があります。変数を渡し、それをオプションとして持たない点は何ですか?私は現在、os.getcwd()を使用しています –

+0

このメソッドは** classmethod **です。ハンドラオブジェクト、アプリケーションのコンテキストを持たないため、 'root'が必要です。実際には' StaticFileHandler'オブジェクトはこのメソッドは同じ 'application.settings ['static_path']'です。 – kwarunek

+0

はい、それはちょうどclassmethodだったことが分かりました。これはクールです。ありがとう!! –