Ресурсы активов Symfony2 из статического домена или поддомена


Я пытаюсь оптимизировать свой проект, чтобы избежать отправки файлов cookie со статическими ресурсами (т.Е. изображениями, сценариями, таблицами стилей и т.д.). Мой подход заключается в том, чтобы создать static.my-domain.com домен для обслуживания оттуда всех статических ресурсов без файлов cookie.

Как я могу загрузить ресурсы из этого домена с помощью Symfony2 с помощью asset?

Я использую Symfony 2.1 RC2

Author: Incognito, 2012-09-01

2 answers

Оказывается, есть параметры assets_base_urls, которые позволяют вам устанавливать домены активов.

 4
Author: meze, 2012-09-01 16:23:51

Я добавил несколько глобалов веток, чтобы справиться с этим

# 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, если ваше приложение находится в поддомене. Если ваше приложение не использует поддомен, вам придется использовать отдельный домен для статических ресурсов.

 1
Author: ChocoDeveloper, 2012-09-02 20:40:38