Ресурсы активов Symfony2 из статического домена или поддомена
Я пытаюсь оптимизировать свой проект, чтобы избежать отправки файлов cookie со статическими ресурсами (т.Е. изображениями, сценариями, таблицами стилей и т.д.). Мой подход заключается в том, чтобы создать static.my-domain.com домен для обслуживания оттуда всех статических ресурсов без файлов cookie.
Как я могу загрузить ресурсы из этого домена с помощью Symfony2 с помощью asset?
Я использую Symfony 2.1 RC2
2 answers
Оказывается, есть параметры 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
- Для версионных и скомпилированных css/js и т. Д. Я печатаю
{{ 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, если ваше приложение находится в поддомене. Если ваше приложение не использует поддомен, вам придется использовать отдельный домен для статических ресурсов.