Pyramid/Pylon フレームワークでビュー callable を含む javascript コードまたは javascript ファイルを返すにはどうすればよいですか?
2 に答える
任意のテンプレート/ビュー callable で行うように、これを行うことができます。それほど違いはありません。コンテンツタイプをそのように設定することをお勧めします。
from pyramid.view import view_config
@view_config(name='javascript', renderer='templates/javascript.mako')
def my_js_view(request):
request.response.content_type = 'application/javascript'
return {... params ...}
他のビューと特に違いはありません。
ジャバスクリプトの種類は?動的に生成されますか、それとも静的ですか?
静的な場合は、静的なビューを使用して、CSS や画像のように提供するだけです。
動的な場合は、テンプレートを使用して JavaScript ファイルを生成し、正しいコンテンツ タイプで提供します。これはChameleon テキスト レンダラーを使用した例ですが、もちろん、好みのテンプレート エンジンを使用することもできます。
@view_config(name='generated_javascript', renderer='templates/generated_javascript.txt')
def generated_javascript(request):
request.response.content_type = 'text/javascript'
# The returned dict holds items your template can access when
# generating the javascript.
return dict(foo='bar', spam='eggs')
生成された JavaScript をブラウザーが認識できるようcontent_type
に、Response オブジェクトに属性を設定していることに注意してください。
テンプレートは、他のテンプレートと同様に、dict
返された の値といくつかの追加のシステム値にアクセスできます。
ベスト プラクティスは、動的 JavaScript の使用を最小限に抑え、可能な限り静的に提供することです。(動的な) コンテキスト情報は、静的な JavaScript を読み込んで使用できるように生成する HTML に実際に含める必要があります。静的 JavaScript はすべての訪問者がキャッシュできるため、パフォーマンスが大幅に向上します。javascript ファイルの Chameleon テンプレートを参照してください。それを達成する方法に関するいくつかのヒントについては。