Javascript 在本地工作但不在生产环境中工作

标签 javascript ruby-on-rails ruby twitter-bootstrap heroku

我几周来一直试图解决这个问题,但没有成功,所以我认为我应该自己写一个,而不是在其他人的问题中寻找答案。

问题如下。几周前,我完成了一个 Rails 项目,因此我将存储库推送到了 Heroku。一切似乎都工作正常,但后来我注意到我的导航栏工具不起作用,我的轮播也不起作用。在本地,它们工作得很好。

目前它托管在 heroku 上。

这些是我尝试过的事情。

  1. 预编译和清理的资源
  2. 已安装gem“rails_12factor”
  3. 重新排序 app.js 如下
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require twitter/bootstrap
//= require lightbox
//= require_tree .
//= require owl.carousel
  • 我什至将我的应用程序部署到了 digital ocean (我认为 heroku 是问题所在)

  • 我尝试使用不同的 Bootstrap gem。 gem 'bootstrap-sass'但仍然是同样的问题。 所以,基本上有些 js 没有按应有的方式工作。我什至尝试使用另一种名为 flickity 的 slider ,我下载了 flickity 的 js 和 css,预编译,然后推送,但在 Heroku 中似乎已损坏。

  • 遵循了接下来的 stackoverflow 问题:
  • 这是我的代码:

    生产.rb

    config.serve_static_files = true
    config.assets.compile = true
    

    gem 文件

    gem "twitter-bootstrap-rails"
    gem 'lightbox2-rails'
    gem "font-awesome-rails"
    gem 'activeadmin'
    gem 'owlcarousel-rails'
    gem 'rails_12factor', group: :production
    gem "rmagick"
    gem "carrierwave"
    gem "mini_magick"
    gem 'kaminari'
    gem 'jquery-ui-rails'
    gem 'sprockets_better_errors'
    group :development do
      gem 'capistrano',         require: false
      gem 'capistrano-rvm',     require: false
      gem 'capistrano-rails',   require: false
      gem 'capistrano-bundler', require: false
      gem 'capistrano3-puma',   require: false
    end
    gem 'devise'
    gem 'cancan'
    gem 'draper'
    gem 'pundit'
    gem 'rails'
    gem "puma"
    gem 'pg', '~> 0.20.0'
    gem 'jquery-rails'
    gem 'jbuilder', '~> 2.0'
    

    应用程序.css

     *= require lightbox
     *= require font-awesome
     *= require bootstrap
     *= require_tree .
     *= require owl.carousel
     *= require owl.theme
    

    控制台错误

    Uncaught TypeError: $(...).carousel is not a function(…)
    

    此错误可以解释轮播不起作用的原因。但我尝试过其他的,但它们也不起作用。导航栏 Toogle 又如何呢?

    还有这个

    未捕获的类型错误:无法读取未定义的属性“桥”(...)

    如果您需要更多信息,请告诉我。

    最佳答案

    尝试将 config.assets.debug = true 放入 production.rb 文件中,看看是否可以修复该问题。我猜测您的压缩 JS 文件中间存在​​错误,导致其余函数无法执行。

    关于Javascript 在本地工作但不在生产环境中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46698432/

    相关文章:

    javascript - AngularJS 在数组中搜索过滤器到对象中

    javascript - 使用 jquery 和 attr() 在 img 之间切换

    javascript - 在 Rails 中动态选择项目

    ruby-on-rails - 将局部变量传递给在 View 加载后呈现的局部变量

    php - ruby 在性能基准测试中是否比 Php 慢

    ruby-on-rails - 使用 ruby​​ 将 Excel 和 Word 文件转换为 PDF

    javascript - 当覆盖 div 可见时,如何停止滚动页面?

    javascript - 如何在 Socket.io/express-sessions 中访问/保存授权事件的 session 数据?

    ruby-on-rails - Rails 问题 : belongs_to with STI -- how do i do this correctly?

    ruby-on-rails - 如何给 .irbrc 添加别名?