wicked_pdf_stylesheet_link_tag 'application' throwing 404 error

2.1k views Asked by At

I've encountered a strange error using wicked_pdf.

I've never had the same issue on my mac, but on my production centos 6.6 vps, it throws 404 error on the line:

wicked_pdf_stylesheet_link_tag 'application' 

I'm using

gem 'rails', '4.1.6'
gem 'wkhtmltopdf-binary'
gem 'wicked_pdf', '~> 0.11.0'

I've tried to add application.css.scss or application.css into initializer/assets.rb

Rails.application.config.assets.version = '1.1'
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

Rails.application.config.assets.precompile += %w(*.svg *.eot *.woff *.ttf *.gif *.png *.ico)
Rails.application.config.assets.precompile += %w(application.css *.js *.css *.js.coffee)

but still does not work,

Anyone have any clue what can be done?

On my ubuntu 14 server used as development machine,

wicked_pdf_image_tag object.file1.file.path 

seems to cause the pdf generator to hang.

I've commented off it, it works. And I've checked that the path is correct.

The problem will also persists with image_tag helper, but works fine when displayed in html format.

full trace showing:

/usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:353:in open_http' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:724:in buffer_open' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:210:in block in open_loop' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:208:in catch' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:208:in open_loop' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:149:in open_uri' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:704:in open' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:34:in open' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:111:in read_from_uri' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:100:inread_asset' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:40:in block in wicked_pdf_stylesheet_link_tag' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:38:incollect' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:38:in wicked_pdf_stylesheet_link_tag' app/views/layouts/pdf.html.slim:5:in _app_views_layouts_pdf_html_slim___1321156534865974876_43089880' actionview (4.1.6) lib/action_view/template.rb:145:in block in render' activesupport (4.1.6) lib/active_support/notifications.rb:161:ininstrument' actionview (4.1.6) lib/action_view/template.rb:339:in instrument' actionview (4.1.6) lib/action_view/template.rb:143:inrender' actionview (4.1.6) lib/action_view/renderer/template_renderer.rb:67:in render_with_layout' actionview (4.1.6) lib/action_view/renderer/template_renderer.rb:53:inrender_template' actionview (4.1.6) lib/action_view/renderer/template_renderer.rb:17:in render' actionview (4.1.6) lib/action_view/renderer/renderer.rb:42:in render_template' actionview (4.1.6) lib/action_view/renderer/renderer.rb:23:in render' actionview (4.1.6) lib/action_view/rendering.rb:99:in_render_template' actionpack (4.1.6) lib/action_controller/metal/streaming.rb:217:in _render_template' actionview (4.1.6) lib/action_view/rendering.rb:82:inrender_to_body' actionpack (4.1.6) lib/action_controller/metal/rendering.rb:32:in render_to_body' actionpack (4.1.6) lib/action_controller/metal/renderers.rb:32:in render_to_body' actionpack (4.1.6) lib/abstract_controller/rendering.rb:43:in render_to_string' actionpack (4.1.6) lib/action_controller/metal/rendering.rb:21:in render_to_string' wicked_pdf (0.11.0) lib/wicked_pdf/pdf_helper.rb:34:in render_to_string_with_wicked_pdf' wicked_pdf (0.11.0) lib/wicked_pdf/pdf_helper.rb:61:inmake_pdf' wicked_pdf (0.11.0) lib/wicked_pdf/pdf_helper.rb:32:in render_to_string_with_wicked_pdf' app/controllers/concerns/has_pdf_response.rb:15:inrespond_to_pdf' app/controllers/quotations_controller.rb:23:in block (2 levels) in show' actionpack (4.1.6) lib/action_controller/metal/mime_responds.rb:258:incall' actionpack (4.1.6) lib/action_controller/metal/mime_responds.rb:258:in respond_to' app/controllers/quotations_controller.rb:20:inshow' actionpack (4.1.6) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (4.1.6) lib/abstract_controller/base.rb:189:inprocess_action' actionpack (4.1.6) lib/action_controller/metal/rendering.rb:10:in process_action' actionpack (4.1.6) lib/abstract_controller/callbacks.rb:20:inblock in process_action' activesupport (4.1.6) lib/active_support/callbacks.rb:113:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:113:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:149:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:149:in block in halting_and_conditional' activesupport (4.1.6) lib/active_support/callbacks.rb:229:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in call' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:86:incall' activesupport (4.1.6) lib/active_support/callbacks.rb:86:in run_callbacks' actionpack (4.1.6) lib/abstract_controller/callbacks.rb:19:inprocess_action' actionpack (4.1.6) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:31:inblock in process_action' activesupport (4.1.6) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.6) lib/active_support/notifications/instrumenter.rb:20:ininstrument' activesupport (4.1.6) lib/active_support/notifications.rb:159:in instrument' actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:30:inprocess_action' actionpack (4.1.6) lib/action_controller/metal/params_wrapper.rb:250:in process_action' activerecord (4.1.6) lib/active_record/railties/controller_runtime.rb:18:in process_action' actionpack (4.1.6) lib/abstract_controller/base.rb:136:in process' actionview (4.1.6) lib/action_view/rendering.rb:30:inprocess' actionpack (4.1.6) lib/action_controller/metal.rb:196:in dispatch' actionpack (4.1.6) lib/action_controller/metal/rack_delegation.rb:13:indispatch' actionpack (4.1.6) lib/action_controller/metal.rb:232:in block in action' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:82:incall' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:82:in dispatch' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:50:in call' actionpack (4.1.6) lib/action_dispatch/journey/router.rb:73:in block in call' actionpack (4.1.6) lib/action_dispatch/journey/router.rb:59:ineach' actionpack (4.1.6) lib/action_dispatch/journey/router.rb:59:in call' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:678:incall' rack-pjax (0.8.0) lib/rack/pjax.rb:12:in call' warden (1.2.3) lib/warden/manager.rb:35:inblock in call' warden (1.2.3) lib/warden/manager.rb:34:in catch' warden (1.2.3) lib/warden/manager.rb:34:incall' rack (1.5.2) lib/rack/etag.rb:23:in call' rack (1.5.2) lib/rack/conditionalget.rb:25:incall' rack (1.5.2) lib/rack/head.rb:11:in call' remotipart (1.2.1) lib/remotipart/middleware.rb:27:incall' actionpack (4.1.6) lib/action_dispatch/middleware/params_parser.rb:27:in call' actionpack (4.1.6) lib/action_dispatch/middleware/flash.rb:254:in call' rack (1.5.2) lib/rack/session/abstract/id.rb:225:in context' rack (1.5.2) lib/rack/session/abstract/id.rb:220:incall' actionpack (4.1.6) lib/action_dispatch/middleware/cookies.rb:560:in call' activerecord (4.1.6) lib/active_record/query_cache.rb:36:incall' activerecord (4.1.6) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in call' actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:29:inblock in call' activesupport (4.1.6) lib/active_support/callbacks.rb:82:in run_callbacks' actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:27:incall' actionpack (4.1.6) lib/action_dispatch/middleware/reloader.rb:73:in call' actionpack (4.1.6) lib/action_dispatch/middleware/remote_ip.rb:76:in call' actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call' actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:incall' railties (4.1.6) lib/rails/rack/logger.rb:38:in call_app' railties (4.1.6) lib/rails/rack/logger.rb:20:inblock in call' activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in block in tagged' activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in tagged' activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in tagged' railties (4.1.6) lib/rails/rack/logger.rb:20:incall' actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.5.2) lib/rack/methodoverride.rb:21:incall' rack (1.5.2) lib/rack/runtime.rb:17:in call' activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in call' rack (1.5.2) lib/rack/lock.rb:17:in call' actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:incall' rack (1.5.2) lib/rack/sendfile.rb:112:in call' railties (4.1.6) lib/rails/engine.rb:514:incall' railties (4.1.6) lib/rails/application.rb:144:in call' passenger (4.0.56) lib/phusion_passenger/rack/thread_handler_extension.rb:74:in process_request' passenger (4.0.56) lib/phusion_passenger/request_handler/thread_handler.rb:141:in accept_and_process_next_request' passenger (4.0.56) lib/phusion_passenger/request_handler/thread_handler.rb:109:in main_loop' passenger (4.0.56) lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'

1

There are 1 answers

1
James Tan On BEST ANSWER

it turn out that ive pointed an absolute path to my image when i called wicked_pdf_image_tag the function actually points to root_path.join('public', 'images')

the solution is to either create a new method or just use this code: image_tag "file://absolute_path_to_img_here", options

[http://www.rubydoc.info/github/mileszs/wicked_pdf/WickedPdfHelper%3Awicked_pdf_image_tag][1]