升级至Rails 6.1与DartSass后JS资源无法找到
解决DartSass升级后JS资源404问题
1. 手动编译JS资源,排查编译错误
运行以下命令手动触发Webpack编译,检查是否能生成目标JS文件:
bin/webpack
查看终端输出,如果编译失败,根据报错修复问题(比如依赖缺失、代码语法错误等)。若编译成功,确认public/packs目录下是否存在application-xxx.js和popper-xxx.js文件。
2. 检查Webpacker配置完整性
打开config/webpacker.yml,确认output_path等配置项未被修改,默认输出路径应为public/packs,确保和javascript_pack_tag引用的路径一致。
3. 切换到Asset Pipeline管理JS资源(若不再使用Webpacker)
如果升级DartSass后计划用Rails原生Asset Pipeline统一管理资源:
- 将JS文件移至
app/assets/javascripts目录 - 替换视图中的
javascript_pack_tag:<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> - 在
config/initializers/assets.rb中添加预编译规则:Rails.application.config.assets.precompile += %w( application.js popper.js )
4. 清理缓存并重启服务
执行以下命令清理旧编译资源,重新预编译后重启服务:
rails assets:clobber rails assets:precompile
重启Rails服务器后再次访问页面验证。
内容的提问来源于stack exchange,提问作者tfantina
相关产品推荐
相关产品推荐

