2016-02-09 4 views
1

У меня проблема с утилизацией и контуром моих изображений в CSS на Symfony. Мой базовый шаблон, мой базовый CSS и изображения, используемые в этом CSS, находятся в папке app/Resources.Symfony assetic cssrewrite путь к изображению в приложении/Ресурсы

У меня есть это:

app/ 
    Resources/ 
     public/ 
      css/ 
       base.css 
      images/ 
       mybackground.png 
    views/ 
     base.html.twig 

В файле base.css, я хочу, чтобы загрузить файл mybackground.css в качестве фона, так что у меня есть эта строка:

background-image: url('../images/mybackground.png');

и в файле 'base.html.twig', я загружаю css с:

{% stylesheets '@base_css' filter='cssrewrite' %} 

<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="{{ asset_url }}" /> 

{% endstylesheets %} 

Я также пробовал без фильтра cssrewrite.

В app/config/config.yml, у меня есть это:

assetic: 
filters: 
    cssrewrite: ~ 
assets: 
    base_css: 
     inputs: 
      - '../app/Resources/public/css/base.css' 

Перед попробовать, я использовал все эти команды:

php app/console cache:clear 
php app/console cache:clear --env=prod 
php app/console assetic:dump 
php app/console assetic:dump --env=prod --no-debug 
php app/console assets:install --symlink web 

Как вы можете догадаться, мой фоновое изображение не загружается (браузер возвращает 404 не найденную ошибку). Я много искал в Интернете, и я нашел похожие случаи, но с ресурсами в некоторых пакетах, не в приложении/Ресурсах.

ответ

0

при создании каталога public в Resources каталоге вашего комплекта , и запустите команду assets:install --symlink, символическая ссылка создается в каталоге web/bundles, соответствующем имени вашего пакета.

Кроме того, чтобы получить изображение, вы должны использовать относительный путь веб-каталога, а не абсолютный путь вашего актива, который:

/bundles/bundlename/images/background.jpg 

EDIT

Если вы действительно не хотят размещать их внутри пакета, просто переместите их с app/Resources непосредственно в папку web и позвоните в ваш css, используя:

url('/images/background.jpg'); 

См. symfony2 how to access app/Resources/img from browser?

+0

Спасибо, но эти ресурсы не находятся в папке Ресурсы пакета, но в приложении/Ресурсах, и ни один каталог не создан в сети/связках, поэтому я не знаю, что делать. –

+0

вам не хватает sth. взгляните на это сообщение http://stackoverflow.com/questions/13785121/install-assets-from-app-directory –

+0

Я добавил изменения, единственное решение - перенести их из приложения/ресурсов непосредственно в веб-папку , см. http://stackoverflow.com/questions/13785121/install-assets-from-app-directory и ссылку в моем ответе – chalasr

0

после вызова активов: установить и установить: дамп, вы найдете свои файлы в веб-каталоге (корневой каталог webservers), все файлы NOT in/web недоступны httpd, поэтому просто взгляните на свою/веб-папку и загляните в папке пучков

поэтому относительный путь будет

/bundles/bundlename/images/background.jpg 

этого вы можете использовать в вашем CSS файл

+0

Спасибо, но каталог/web/bundles не создан. И это логично, потому что мои ресурсы не находятся в комплекте, но в приложении/Ресурсах ... –

+0

Активы, размещенные в 'app/Resources', не связаны с каталогом' bundles', когда вызывается команда 'assets: install'.Кроме того, он должен поместить активы непосредственно в веб-каталог. – chalasr

 Смежные вопросы

  • Нет связанных вопросов^_^