我使用wicked_pdf遇到了一个奇怪的错误。
我的Mac上从来没有遇到同样的问题, 但是在我的生产中心6.6 vps上,它会抛出 404错误:
wicked_pdf_stylesheet_link_tag 'application'
我正在使用
gem 'rails', '4.1.6'
gem 'wkhtmltopdf-binary'
gem 'wicked_pdf', '~> 0.11.0'
我已尝试将application.css.scss
或application.css
添加到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)
但仍无效,
任何人都知道可以做些什么?
在我用作开发机器的ubuntu 14服务器上,
wicked_pdf_image_tag object.file1.file.path
似乎导致pdf生成器挂起。
我评论过它,它有效。我已经检查了路径是否正确。
image_tag帮助程序也会出现问题,但以html格式显示时效果不错。
完整跟踪显示:
/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:inblock in open_loop' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:208:in
赶上' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:208:inopen_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:inopen' /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/open-uri.rb:34:in
开放' wicked_pdf(0.11.0)lib / wicked_pdf / wicked_pdf_helper.rb:111:inread_from_uri' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:100:in
read_asset' wicked_pdf (0.11.0)lib / wicked_pdf / wicked_pdf_helper.rb:40:inblock in wicked_pdf_stylesheet_link_tag' wicked_pdf (0.11.0) lib/wicked_pdf/wicked_pdf_helper.rb:38:in
收集' 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:在block in render' activesupport (4.1.6) lib/active_support/notifications.rb:161:in
工具'的ActionView (4.1.6)lib / action_view / template.rb:339:在instrument' actionview (4.1.6) lib/action_view/template.rb:143:in
渲染' actionview(4.1.6) LIB / ACTION_VIEW /渲染/ template_renderer.rb:67:在render_with_layout' actionview (4.1.6) lib/action_view/renderer/template_renderer.rb:53:in
render_template' actionview(4.1.6)lib / action_view / renderer / template_renderer.rb:17:inrender' 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:在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:in
render_to_body' actionpack(4.1.6) lib / action_controller / metal / rendering.rb:32:在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:在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:inrender_to_string_with_wicked_pdf' wicked_pdf (0.11.0) lib/wicked_pdf/pdf_helper.rb:61:in
make_pdf' wicked_pdf(0.11.0)lib / wicked_pdf / pdf_helper.rb:32:inrender_to_string_with_wicked_pdf' app/controllers/concerns/has_pdf_response.rb:15:in
respond_to_pdf' app / controllers / quotations_controller.rb:23:inblock (2 levels) in show' actionpack (4.1.6) lib/action_controller/metal/mime_responds.rb:258:in
来电' ActionPack的 (4.1.6)lib / action_controller / metal / mime_responds.rb:258:inrespond_to' app/controllers/quotations_controller.rb:20:in
节目' actionpack(4.1.6)lib / action_controller / metal / implicit_render.rb:4:insend_action' actionpack (4.1.6) lib/abstract_controller/base.rb:189:in
process_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:in
阻止' activesupport(4.1.6)lib / active_support / callbacks.rb:113:call' activesupport (4.1.6) lib/active_support/callbacks.rb:113:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
call' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:149:in
呼叫' activesupport(4.1.6) lib / active_support / callbacks.rb:149:在block in halting_and_conditional' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in
来电' activesupport(4.1.6) lib / active_support / callbacks.rb:229:block in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:229:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
call' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
呼叫' activesupport(4.1.6) lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in
call' activesupport(4.1.6)lib / active_support / callbacks.rb:229:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
呼叫' activesupport(4.1.6) lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:229:in
call' activesupport(4.1.6)lib / active_support / callbacks.rb:229:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
呼叫' activesupport(4.1.6) lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
call' activesupport(4.1.6)lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:166:in
呼叫' activesupport(4.1.6) lib / active_support / callbacks.rb:166:inblock in halting' activesupport (4.1.6) lib/active_support/callbacks.rb:86:in
来电' activesupport(4.1.6)lib / active_support / callbacks.rb:86:inrun_callbacks' actionpack (4.1.6) lib/abstract_controller/callbacks.rb:19:in
process_action' ActionPack的 (4.1.6)lib / action_controller / metal / rescue.rb:29:在process_action' actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:31:in
块中 process_action' activesupport(4.1.6) lib / active_support / notifications.rb:159:在block in instrument' activesupport (4.1.6) lib/active_support/notifications/instrumenter.rb:20:in
工具' activesupport(4.1.6)lib / active_support / notifications.rb:159:ininstrument' actionpack (4.1.6) lib/action_controller/metal/instrumentation.rb:30:in
process_action' actionpack(4.1.6) lib / action_controller / metal / params_wrapper.rb:250:在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:在process' actionview (4.1.6) lib/action_view/rendering.rb:30:in
进程' actionpack(4.1.6) lib / action_controller / metal.rb:196:在dispatch' actionpack (4.1.6) lib/action_controller/metal/rack_delegation.rb:13:in
发送' actionpack(4.1.6)lib / action_controller / metal.rb:232:在block in action' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:82:in
调用' ActionPack的 (4.1.6)lib / action_dispatch / routing / route_set.rb:82:indispatch' 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:inblock in call' actionpack (4.1.6) lib/action_dispatch/journey/router.rb:59:in
各' actionpack(4.1.6) lib / action_dispatch / journey / router.rb:59:call' actionpack (4.1.6) lib/action_dispatch/routing/route_set.rb:678:in
来电'机架pjax (0.8.0)lib / rack / pjax.rb:12:incall' warden (1.2.3) lib/warden/manager.rb:35:in
阻止通话'监狱长(1.2.3) lib / warden / manager.rb:34:incatch' warden (1.2.3) lib/warden/manager.rb:34:in
来电' rack(1.5.2)lib / rack / etag.rb:23:incall' rack (1.5.2) lib/rack/conditionalget.rb:25:in
呼叫'架 (1.5.2)lib / rack / head.rb:11:incall' remotipart (1.2.1) lib/remotipart/middleware.rb:27:in
来电' actionpack(4.1.6) lib / action_dispatch / middleware / params_parser.rb:27:incall' actionpack (4.1.6) lib/action_dispatch/middleware/flash.rb:254:in
来电' rack(1.5.2)lib / rack / session / abstract / id.rb:225:在context' rack (1.5.2) lib/rack/session/abstract/id.rb:220:in
电话' ActionPack的 (4.1.6)lib / action_dispatch / middleware / cookies.rb:560:在call' activerecord (4.1.6) lib/active_record/query_cache.rb:36:in
电话' activerecord(4.1.6) LIB / active_record / connection_adapters /抽象/ connection_pool.rb:621:在call' actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:29:in
阻止通话' activesupport(4.1.6)lib / active_support / callbacks.rb:82:inrun_callbacks' actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:27:in
呼叫' ActionPack的 (4.1.6)lib / action_dispatch / middleware / reloader.rb:73:在call' actionpack (4.1.6) lib/action_dispatch/middleware/remote_ip.rb:76:in
电话' actionpack(4.1.6) lib / action_dispatch / middleware / debug_exceptions.rb:17:incall' actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in
call' railties(4.1.6)lib / rails / rack / logger.rb:38:incall_app' railties (4.1.6) lib/rails/rack/logger.rb:20:in
阻止电话'的ActiveSupport (4.1.6)lib / active_support / tagged_logging.rb:68:在block in tagged' activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in
标记的' activesupport(4.1.6) lib / active_support / tagged_logging.rb:68:intagged' railties (4.1.6) lib/rails/rack/logger.rb:20:in
来电' actionpack(4.1.6) lib / action_dispatch / middleware / request_id.rb:21:incall' rack (1.5.2) lib/rack/methodoverride.rb:21:in
来电'机架(1.5.2) lib / rack / runtime.rb:17:incall' 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:incall' actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in
call'机架(1.5.2) lib / rack / sendfile.rb:112:call' railties (4.1.6) lib/rails/engine.rb:514:in
来电'铁路(4.1.6) lib / rails / application.rb:144:在call' passenger (4.0.56) lib/phusion_passenger/rack/thread_handler_extension.rb:74:in
process_request'乘客(4.0.56) LIB / phusion_passenger / request_handler / thread_handler.rb:141:在accept_and_process_next_request' passenger (4.0.56) lib/phusion_passenger/request_handler/thread_handler.rb:109:in
中main_loop'乘客(4.0.56) lib / phusion_passenger / request_handler.rb:455:在`block(3个级别)中 start_threads'
答案 0 :(得分:1)
事实证明,当我打电话时,我已经指出了我的图像的绝对路径 的 wicked_pdf_image_tag 强> 该功能实际指向 root_path.join(' 公开',' 图片')
解决方案是创建一个新方法或只使用此代码: image_tag" file:// absolute_path_to_img_here",options
[http://www.rubydoc.info/github/mileszs/wicked_pdf/WickedPdfHelper%3Awicked_pdf_image_tag][1]