Rails 6.1.7.6无需Webpack实现JavaScript运行的问题求助
解决Rails 6.1.x不使用Webpack时Asset Pipeline加载JS的问题
换回
javascript_include_tag
你之前把布局里的javascript_include_tag改成javascript_tag是错误的。javascript_tag用于编写内联JS代码,加载asset pipeline中的JS文件必须用javascript_include_tag,把布局代码改回:<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>检查manifest.js配置完整性
打开app/assets/config/manifest.js,除了已添加的//= link_directory ../javascript .js,还要保证基础配置完整,参考内容://= link_tree ../images //= link_directory ../javascript .js //= link_directory ../stylesheets .css修正application.js的依赖引入
在app/assets/javascript/application.js开头用Sprockets指令正确引入依赖,示例://= require jquery3 //= require turbolinks //= require_tree . // 测试代码写在这里 console.log('Asset pipeline JS已加载');本地预编译资产并验证Heroku配置
先在本地执行预编译,确认无错误:rails assets:precompile RAILS_ENV=production然后检查Heroku生产环境配置:
- 确保
config/environments/production.rb中开启静态文件服务:config.public_file_server.enabled = true - Gemfile的
production组包含必要gem:group :production do gem 'pg' gem 'rails_12factor' # 适配Heroku静态文件服务,可选但推荐 end
- 确保
清除缓存后重新部署
本地清除缓存:rails tmp:clear提交修改后重新部署到Heroku:
git add . git commit -m "修复Asset Pipeline加载JS问题" git push heroku main
内容的提问来源于stack exchange,提问作者John Cowan
相关产品推荐
相关产品推荐

