Intereting Posts
Неопределенное смещение при доступе к элементу массива, который существует PHP image_jpeg не работает, если файл UTF-8 работает, если это ANSI как загрузить файл из file_get_contents? Мой сайт php был взломан кодами, загруженными как изображение ..? Утечка памяти при выполнении запроса Doctrine в цикле Favicon для PNG в PHP Как зарегистрировать php dll с окнами, если это 64-битные окна, но 32-битные php и apache? PayPal Express Checkout Instant Update не обновляет доставку Защита страницы не работает правильно для страницы администратора URL-адрес, не принимающий альфа-числовой параметр – Yii2-app-basic Невозможно получить значения из массива JSON и объекта Преобразование количества минут в часы и минуты с помощью PHP Может ли кто-нибудь предложить лучший сценарий изменения размера изображения в php? Как перенаправить другой способ на событие selectChange? Неустранимая ошибка: вызов неопределенного метода mysqli_result :: fetch_all ()

Symfony2 / Twig: создать альтернативный абсолютный путь URL для использования с CDN?

Это решение stackoverflow почти отвечает на мой вопрос. Но я хочу генерировать URL-адреса CDN в Twig больше, чем просто ресурсы. Я бы хотел создать их для динамического контента. Поэтому я не думаю, что Assetic tweak – это подходящая область для поиска.

На данный момент я могу установить CDN_url в parameters.ini и использовать это в моих URL-адресах. Мой код будет выглядеть так: {{CDN_Url}}{{url('route',{'param1':'value'}} .. Обслуживание кода – одна из основных причин, по которым мне не нравится этот параметр. такие вещи, как проверка маршрута для /cdn/ для генерации URL- /cdn/ CDN и всего остального, основанного на домене. Мне не пришлось бы запускать изменение большого количества переменных. И если бы я хотел остановить создание CDN-url. Я мог бы просто изменить маршрут. Таким образом, есть много преимуществ, чтобы выяснить, есть ли для этого чистое решение.

Если уже нет решения – как бы я начал расширять функциональность {{ url() }} чтобы использовать его как path и url .

Вы можете сделать это с помощью связанного с вами вопроса следующим образом

 {{ asset(path('route',{'param1':'value'})) }} 

Если вам нужно обрабатывать несколько доменов CDN, вы можете сделать это следующим образом

В app/config.yml

 # app/config.yml #.... templating: engines: ['twig'] packages: cdn1: base_urls: ["http://cdn1.domain.com"] cdn2: base_urls: ["http://cdn2.domain.com"] 

И затем в вашем файле шаблона twig

 {{ asset('path/of/file', 'cdn1') 

ИЛИ

 {{ asset('path/of/file', 'cdn2') 

Я не знаю о материалах CDN, но, расширяя функцию url, взгляните на:

Symfony \ Мост \ Twig \ Extension \ RoutingExtension

 public function __construct(UrlGeneratorInterface $generator) { $this->generator = $generator; } public function getFunctions() { return array( 'url' => new \Twig_Function_Method($this, 'getUrl'), 'path' => new \Twig_Function_Method($this, 'getPath'), ); } public function getPath($name, $parameters = array()) { return $this->generator->generate($name, $parameters, false); } public function getUrl($name, $parameters = array()) { return $this->generator->generate($name, $parameters, true); } 

Таким образом, вы можете получить getUrl там, или вы можете вставить свой собственный UrlGenerator. Не уверен, что было бы проще в вашем конкретном случае. Возможно создание собственного UrlGenerator.