2015-09-01 2 views
0

У меня есть приложение, которому нужны некоторые активы из URL. Я ввожу их, как:Symfony dump assets from URL

{% block stylesheets %} 
    {% stylesheets 
     'http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css' 
     'bundles/bmatznerfoundation/css/foundation.min.css' 
     'bundles/arpanetkorepeteshop/css/*' 
     filter="cssrewrite" 
    %} 
     <link rel="stylesheet" type="text/css" href="{{ asset_url }}" /> 
    {% endstylesheets %} 
{% endblock %} 

Если я дамп активы

php app/console assetic:dump 

он загружает источник. Но если внутри источника есть импорт, он не загружает его.

@font-face { 
    font-family: "foundation-icons"; 
    src: url("http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.eot"); 
} 

Есть ли способ загрузить все это?

+0

Возможно, cssrewrite изменил URL-адрес? – malcolm

ответ

1

Краткая версия: нет. Разбор CSS-файла для импорта (в данном случае внешнего файла шрифта) выходит за рамки того, что Assetic может сделать. Есть много способов подключиться к Assetic, если вы готовы копаться в коде и писать свои собственные, однако в этом случае я бы порекомендовал просто загрузить сам значок шрифта самостоятельно - вы в конце концов свяжете его как проект зависимость.

0

Нет, CSS анализируется на странице времени загрузки, поэтому браузер выполнит загрузку, а не усложняет. Но вот предложение:

Вместо добавления URL-адресов ко всем блокам таблиц стилей вы также можете определить их как активы в своей конфигурации (YML в моем случае), а затем просто укажите необходимые вам ресурсы в блоке таблиц стилей ,

# Assetic Configuration 
... 
... 
assets: 
    foundation_icons: 
     inputs: 
      - //cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css 
     output: css/foundation_icons.css 
    jquery: 
     inputs: 
      - %kernel.root_dir%/../vendor/jquery/jquery/jquery-2.1.3.js 
      - //ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js 
     output: js/jquery.js 
    datatables: 
     inputs: 
      - //cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js 
     output: js/datatables.js 

Затем в Стилей блок, просто вызовите

{% stylesheets 
    '@foundation_icons' 
    'bundles/bmatznerfoundation/css/foundation.min.css' 
    'bundles/arpanetkorepeteshop/css/*' 
%} 

теперь вы можете загрузить @foundation_icons в любом виде, и не нужно быть копируя любые URL.