【问题标题】:Javascripts not working on Heroku Rails 4.2 deploy with Zurb Foundation 5, but work in developmentJavascripts 不能在 Heroku Rails 4.2 上使用 Zurb Foundation 5 部署,但在开发中工作
【发布时间】:2015-07-11 02:26:54
【问题描述】:

我正在运行带有“foundation-rails”5.5.2 gem 的 Rails 4.2.3,但无法在 Heroku 上运行。我的应用程序在本地运行良好,但是当尝试使用 Foundation 5 将我的应用程序部署到 Heroku 时,javascripts 没有加载。

Heroku 上的 CSS 看起来还不错,但是诸如 modals 之类的东西不起作用,并且控制台没有显示我的 application.js 文件中指定的任何 javascript 正在运行。

Modernizr.jsJquery-2.1.4 正在运行

我在任何地方都没有看到任何错误,并且我使用 bundle exec rake assets:precompile 预编译了资产,并且资产似乎已经过预编译。

如何让 javascripts 加载以使页面正常工作?

application.js:

//= require jquery
//= require jquery_ujs
//= require jquery.serializeJSON
//= require jquery.bind_with_delay
//= require_tree .
//= require_self
//= require gifffer.min
//= require imagesloaded.min
//= require google.jsapi
//= require foundation
//= stub bookmarklet/modal_bookmarklet
$(function() { 
  $(document).foundation();
});

production.rb

config.cache_classes = true

config.eager_load = true

config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

config.serve_static_files = true

config.assets.js_compressor = :uglifier

config.assets.compile = true

config.assets.digest = true

宝石文件

source "https://rubygems.org"

gem "rails", "4.2.3"
gem "unicorn"
gem "mysql2", ">= 0.3.14"
gem "pg"
gem "thinking-sphinx", "~> 3.1.2"
gem "jquery-rails"
gem "dynamic_form"
gem "exception_notification"
gem "bcrypt", "~> 3.1.2"
gem "nokogiri", "= 1.6.6.2"
gem 'mini_portile', '~>0.6.2'
gem "htmlentities"
gem "rdiscount"
gem "oauth"
gem "mail"
gem 'metainspector', :git => 'https://github.com/jaimeiniesta/metainspector.git'
gem 'material_icons'
gem "bower-rails","~> 0.9.2"
gem 'launchy'
gem 'sass', '~> 3.4.15'
gem 'foundation-rails', '~> 5.5.2'
gem 'compass', '~>1.0.3'
gem "uglifier", ">= 1.3.0"
gem 'coffee-rails', '~> 4.1.0'
gem 'modernizr-rails', '~>2.7.1'
gem 'jbuilder', '~> 2.3.0'
gem 'multi_json', '~>1.11.1'

gem 'rails_12factor'
gem 'paperclip', :git => "git://github.com/thoughtbot/paperclip.git"
gem 'aws-sdk'
gem 'figaro'
gem 'omniauth-facebook'

gem 'pg_search'
gem 'kaminari'
gem 'ejs'

gem 'yt', '~> 0.25.0'

group :doc do
    gem 'sdoc', require: false
end

group :test, :development do
  gem "rspec-rails", "~> 3.3.2"
  gem "machinist"
  gem "sqlite3"
  gem "faker"
  gem 'annotate'
  gem 'better_errors'
  gem 'binding_of_caller'
end

编辑 看起来我收到一条错误消息,上面写着“未捕获的 TypeError:$(...).foundation 不是函数”。我不确定这是否与 Heroku 或我的配置有关。为什么这会在本地工作,而不是在 Heroku 上?

【问题讨论】:

  • 您确定您的预编译资产正在进入您的存储库,以便在部署期间它们可供 Heroku 使用吗?
  • 我想是的。我可以在 public/assets/vendor 文件夹中看到它们。
  • 它们是否被推送到您的存储库?您应该验证存储库是否包含这些文件。
  • 我使用了heroku run bash 并确认它们在heroku 存储库中。
  • 看起来我收到一条错误消息,上面写着“Uncaught TypeError: $(...).foundation is not a function。我不确定这是否与 Heroku 或我的配置有关. 为什么这会在本地工作,而不是在 Heroku 上?

标签: javascript ruby-on-rails-4 heroku zurb-foundation-5


【解决方案1】:

在加载基础 JS 之前,您已经调用了 require_self,并且您正在尝试在清单文件中使用基础 JS。尝试在所有其他指令之后移动 require_self 指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-14
    • 2014-03-28
    • 2012-08-23
    • 1970-01-01
    • 2012-07-02
    • 2012-04-30
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多