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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:22:39