静的リソース (画像、スクリプト、スタイルシートなど) で Cookie を送信しないようにプロジェクトを最適化しようとしています。私のアプローチは、 static.my-domain.com ドメインを作成して、そこからすべての静的リソースを Cookie なしで提供することです。
アセットを使用して Symfony2 を使用して、このドメインからリソースをロードするにはどうすればよいですか?
Symfony 2.1 RC2 を使用しています
静的リソース (画像、スクリプト、スタイルシートなど) で Cookie を送信しないようにプロジェクトを最適化しようとしています。私のアプローチは、 static.my-domain.com ドメインを作成して、そこからすべての静的リソースを Cookie なしで提供することです。
アセットを使用して Symfony2 を使用して、このドメインからリソースをロードするにはどうすればよいですか?
Symfony 2.1 RC2 を使用しています
アセット ドメインを設定できる assets_base_urls オプションがあることがわかりました。
これに対処するためにいくつかの小枝グローバルを追加しました
# config.yml
framework:
templating:
engines: ['twig']
assets_version: 'dev'
assets_version_format: "%%2$s/%%1$s"
session:
cookie_domain: %session.cookie_domain%
twig:
globals:
assets_version: dev
static_assets_base_url: %static_assets_base_url%
static_images_base_url: %static_images_base_url%
static_image: %static_images_base_url%/dev/ # I didn't know how to reference the assets_version, so this is the same value
static_content: %static_images_base_url%/
# parameters.yml
parameters:
session.cookie_domain: .myapp.dev
static_assets_base_url: http://myapp-static.dev
static_images_base_url: http://myapp-static.dev/path/to/web
{{ static_assets_base_url ~ asset_url }}
。{{ static_image ~ 'bundles/mybundle/img/icon.jpg' }}
。{{ static_content ~ 'content/img/upload-123.jpg' }}
。なぜこれを行ったのか正確には覚えていませんが、資産のバグに関連していました (驚きです)。バージョンを追加しない場合や、間違って追加する場合があるように、パスを正しく処理できないだけです。
アセットのバージョンを手動で変更する必要がある場合は面倒なので、これを行うためのデプロイ スクリプトを用意しておくことをお勧めします。
ああ、Assetic はコンパイルされたアセットを指定されたディレクトリにダンプしないことに注意してください。これは既知の問題です。したがって、これらのディレクトリに独自のシンボリック リンクを追加する必要があります。
編集
アプリがサブドメインにある場合、「session.cookie_domain」パラメーターを使用すると、同じドメインを使用して Cookie を回避できます。アプリがサブドメインを使用していない場合は、静的アセット用に別のドメインを使用する必要があります。