You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 6使用wicked_pdf生成PDF报qr-code.js资源缺失该如何解决

问题根因

Rails 6默认同时使用两套资源管理体系:

  1. Webpacker:负责管理app/javascript目录下的资源,通过javascript_pack_tag引用
  2. Sprockets资产管道:负责管理app/assets目录下的资源,通过javascript_include_tag引用

wicked_pdf_javascript_include_tag默认走Sprockets的资源查找逻辑,你的qrcode.js存放在Webpacker管理的packs目录下,Sprockets无法识别,所以修改文件名也无法解决问题。

修复方案

方案1(推荐):使用Webpacker适配的wicked_pdf引用标签

直接将模板第2行的引用语句替换为:

<%= wicked_pdf_javascript_pack_tag 'qrcode' %>

该标签会自动匹配Webpacker管理的app/javascript/packs下的资源,同时适配PDF渲染的资源路径处理。如果你的wicked_pdf版本低于1.4不支持该标签,可以改用兼容写法:

<%= javascript_pack_tag 'qrcode', helper: 'wicked_pdf' %>

方案2:将资源迁移到Sprockets管理路径

把./app/javascript/packs/qrcode.js文件复制到./app/assets/javascripts/qrcode.js,保持修改后的引用语句<%= wicked_pdf_javascript_include_tag "qrcode" %>即可正常生效。

缓存清理操作(修改后仍报错时执行)

按顺序执行以下命令清理所有缓存:

  • 清理Webpacker打包缓存:bin/rails webpacker:clobber
  • 清理Rails临时缓存:bin/rails tmp:clear
  • 生产环境需重新预编译资源:bin/rails assets:precompile

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:03