Я использую драгоценный камень wicked_pdf
для создания PDF-счета с изображением логотипа. Когда я использую помощник Rails:
<%= image_tag('logo.svg'), alt: "alternate_text") %>
логотип отображается в браузере, но не отображается, когда я иду, чтобы загрузить его.
Я видел, что путь к изображению должен быть абсолютным URL-адресом. Поэтому я внедрил логотип с внешнего URL-адреса: http://path_to_external_url.com/assets/logo.svg
(который является существующим приложением Rails), который работает и отображается в загруженном PDF-файле.
Далее я создал помощник в своем приложении Rails, чтобы найти корневой URL-адрес проекта следующим образом:
def asset_url(asset)
"#{request.protocol}#{request.host_with_port}#{asset_path(asset)}"
end
то, на мой взгляд, называется вспомогательным методом:
<%= image_tag(asset_url('logo.svg'), alt: "Meetupcall") %>
Теперь все работает нормально, я вижу изображение в браузере, но когда я нажимаю кнопку, чтобы загрузить его, оно зависает. Я не могу понять, почему он работает с жестко заданным URL-адресом, но не тогда, когда я использую встроенный помощник image_tag
.
Я использую OS X Mountain Lion 10.8.4 и wkhtmltopdf 0.8.3.
Это копия ошибки в файле журнала:
RuntimeError — Не удалось выполнить: «/Users/Azz/.gem/ruby/2.0.0/bin/wkhtmltopdf» -q «file:////var/folders/ms/b15k263952g5_14lnsgn9gq80000gn/T/wicked_pdf20130715-670-103zzi7. html" "/var/folders/ms/b15k263952g5_14lnsgn9gq80000gn/T/wicked_pdf_generated_file20130715-670-5xs1jt.pdf" Ошибка: PDF не может быть сгенерирован! Ошибка команды: /Users/Azz/.gem/ruby/2.0.0/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf:14: в системе: прерывание от /Users/Azz/.gem/ruby/2.0. 0/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf:14:in from /Users/Azz/.gem/ruby/2.0.0/bin/wkhtmltopdf:23:in load from /Users/Azz/.gem /ruby/2.0.0/bin/wkhtmltopdf:23:в основном
У меня также есть это в моем gemfile:
gem 'wkhtmltopdf-binary'
gem "wicked_pdf", "~> 0.9.6"
0.9.9-OS-X.i368
,0.9.9-static-amd64
и0.11.0_rc1-static-amd64
. 23.01.20140.9.9
, так и0.11.0_rc1
, но все равно не работает. так что проблема должна быть где то в другом. 23.01.2014