with wicked_pdf_image_tag wicked_pdf wicked render_to_string rails generate example español ruby-on-rails-3.1 sass asset-pipeline production wicked-pdf

ruby-on-rails-3.1 - wicked_pdf_image_tag - wicked pdf example



La tubería de activos de wicked_pdf+rails+sass importa en producción (2)

Estoy utilizando wicked_pdf exitosamente con SASS en desarrollo. .scss archivo .scss único, que contiene varias reglas de import para otros archivos .sass y .scss , a través de este asistente:

def wicked_pdf_stylesheet_link_tag(*sources) sources.collect { |source| "<style type=''text/css''>#{Rails.application.assets.find_asset("#{source}.css").body}</style>" }.join("/n").gsub(/url/([''"](.+)[''"]/)(.+)/,%[url("#{wicked_pdf_image_location("//1")}")//2]).html_safe end

Pero al cambiar a producción, la aplicación aún busca los archivos importados que no se encuentran.

He agregado un segundo archivo de manifiesto para ser precompilado en production.rb ( config.assets.precompile += %w(pdf.css) ) que contiene una regla de .scss única para recoger el archivo .scss mencionado. Este archivo está compilado muy bien, pero parece que el ayudante no recoge el archivo correcto en producción y aún busca cargar los archivos .sass importados.

¿Alguien ha experimentado cómo resolver esto? La creación de PDF requiere rutas absolutas, lo que hace que esta tarea sea un poco más difícil.


Tengo un pdf perverso trabajando en desarrollo y producción. Este es el núcleo de mi configuración wicked_pdf:

He actualizado WickedPdfHelper (cargado desde initializers / wicked_pdf.rb) basado en una solicitud de extracción wicked_pdf de github user antti

module WickedPdfHelper def wicked_pdf_stylesheet_link_tag(*sources) sources.collect { |source| "<style type=''text/css''>#{Rails.application.assets.find_asset(source+".css")}</style>" }.join("/n").html_safe end def wicked_pdf_image_tag(img, options={}) asset = Rails.application.assets.find_asset(img) image_tag "file://#{asset.pathname.to_s}", options end def wicked_pdf_javascript_src_tag(jsfile, options={}) asset = Rails.application.assets.find_asset(jsfile) javascript_include_tag "file://#{asset.pathname.to_s}", options end def wicked_pdf_javascript_include_tag(*sources) sources.collect{ |source| "<script type=''text/javascript''>#{Rails.application.assets.find_asset(source+".js")}</script>" }.join("/n").html_safe end end

luego en app / assets / stylesheets / pdf.css Necesito algunas hojas de estilo sass:

/* ... *= require ./_colors *= require_directory ./pdf *= require_self */

(recuerde que si está modificando inicializadores o cualquier cosa en config /, tendrá que reiniciar su aplicación de rieles para incorporar los cambios)