Нет фотографий в моем PDF созданном с помощью PdfKit на heroku - PullRequest
1 голос
/ 02 сентября 2011

У меня есть приложение, которое отлично работает в разработке и на моем текущем производственном сервере.

Я хочу переместить его на БЕСПЛАТНУЮ героку (базовая конфигурация: 1 динамо, 1 рабочий).

К сожалению, генерация PDF ( с использованием PdfKit ) в порядке, НО без картинок , определенных в моем CSS .

Я следовал многим советам, включая:

Мысли?


Найден обходной путь, но я все еще хочу узнать лучший вариант:

  • Я продублировал свое мнение: одно предназначено для html, другое для pdf.

  • Я удалил все CSS, используя картинки, и поместил его в отдельный файл, включенный только в представление, предназначенное для html

  • , наконец, я вставил css впросмотр , посвященный pdf:

    .foo { background-image:url(<%= Rails.root %>/public/images/bar.png) }

Очень некрасиво, но работает, поэтому, пожалуйста, скажите, если вы лучше

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Вот как я ответил на мои запросы:

  • Всего один файл для просмотра

  • Только один файл CSS

Хитрость заключалась в том, чтобы передать правильный base_url в файл CSS динамически , учитывая, что я ожидал PDF или HTML.

Я решил использовать МЕНЬШЕ .Стиль компилирует CSS другим способом, учитывая базовый URL, который я предоставляю в DOM.Этот базовый URL создается помощником.


Вот мои шаги:

  • изменил мой style.css на style.less

  • Добавлено на мой взгляд:

<%= stylesheet_link_tag "style.less", :rel => "stylesheet/less" %>

<script id="base_url" type="text/javascript" data="<%= assets_path %>"></script>

<%= javascript_include_tag "less.min.js" %>
  • В моем помощнике:
  def assets_path
    if request.fullpath.include? ".pdf"
      "#{Rails.root.join('public',"images","pictos")}"
    else
      "#{request.protocol}#{request.host_with_port}/images/pictos"
    end
  end
  • а по моему style.less:
@base_url: `document.getElementById('base_url').getAttribute('data')`;

.foo { background-image:~"url(@{base_url}/bar.png)" }
0 голосов
/ 02 сентября 2011

Вероятно, проблема связана с тем, как URL-адреса указываются в CSS. Насколько я помню, они должны быть абсолютными путями файловой системы. Как выглядит ваш css?

...