wicked_pdf с использованием помощника тега изображения в файле css

Я использую плагин wicked_pdf с проектом rails 3.2 и конвейером ресурсов. Я хочу определить свою картинку внутри pdf.css.erb

Вот мой код контроллера для использования файла макета:

    respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "Cars.pdf",
        :template => "reports/cars.html.haml",
        :page_size => "A4",
        :layout => "pdf.html",
        :handlers => [:haml]
      end
    end

Вот мой файл макета, в который я включаю файл pdf.css.erb.

!!!
%html
    %head
        = wicked_pdf_stylesheet_link_tag "pdf"
        = csrf_meta_tag
    %body
        .contentbg
            .logo
            .content= yield

Наконец, вот мой CSS

.logo {
    background: wicked_pdf_image_tag "logo.jpg";
    width: 100px;
    height: 80px;
}

Это не находит logo.jpg. Если я помещу строку wicked_pdf_image_tag «logo.jpg» непосредственно в мой файл макета шаблона pdf.html.haml, тогда мой логотип будет отображаться в сгенерированном PDF-файле.

Можно ли использовать помощник wicked_pdf_image_tag внутри файла css.erb?


person map7    schedule 17.05.2012    source источник


Ответы (1)


Это не сработает внутри файла css.erb, во-первых, потому что в нем отсутствуют теги erb, но в основном потому, что wicked_pdf_image_tag расширит это до следующего:

.logo {
  background: <img src="file://foo/bar/public/images/logo.jpg">;
}

Что неверно css. Лучше всего построить его вручную и примерно так:

.logo {
  background: url(<%= Rails.root.join('assets','images','logo.jpg').to_s %>);
}

Причина использования прямого пути доступа к файлу заключается в том, что wkhtmltopdf не нужно делать веб-запрос для получения ресурсов и, следовательно, загружаться быстрее.

person Unixmonkey    schedule 21.05.2012
comment
Пришлось также включить 'app', url (‹% = Rails.root.join ('app', 'assets', 'images', 'logo.jpg'). To_s%›) - person map7; 23.05.2012