Rails 3.2和jQuery函数在生产中不起作用

Rails 3.2和jQuery函数在生产中不起作用,jquery,ruby-on-rails,twitter-bootstrap,ruby-on-rails-3.2,twitter-bootstrap-rails,Jquery,Ruby On Rails,Twitter Bootstrap,Ruby On Rails 3.2,Twitter Bootstrap Rails,要让资产管道编译的javascript函数在生产环境中工作,我遇到了一些麻烦。它在开发中运行良好 Javascript # app/assets/javascript/subscribe.js $(function() { $('#fat-btn').click(function() { var btn = $(this) btn.button('loading') setTimeout(function () { btn.button('reset')

要让资产管道编译的javascript函数在生产环境中工作,我遇到了一些麻烦。它在开发中运行良好

Javascript

# app/assets/javascript/subscribe.js

$(function() {
  $('#fat-btn').click(function() {
    var btn = $(this)
    btn.button('loading')
    setTimeout(function () {
      btn.button('reset')
    }, 2000)
  });
});
# app/assets/javascript/application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
我的看法

# app/assets/subscribe.html.erb

<div class="subscribe">
  <%= form_tag subscribe_path, class: "form-inline" do %>
      <%= text_field_tag :email, nil, :type=>"email", :placeholder => 'Your email address' %>
      <%= button_tag "Go", id: "fat-btn", class: "btn", data: { "loading-text" => "loading...", "toggle" => "button"} %>
  <% end %>
</div>

非常感谢您的帮助。谢谢

在生产模式下加载页面时,您能否检查浏览器中的网络控制台?似乎有些资产尚未加载


如果是这样,那么在rails环境配置中,config.service\u static\u assets似乎设置为false(在生产模式下默认设置为false)。检查config/environments/production.rb文件。

这以前发生在我身上,我调用了JQuery的多个实例。 因此:

  • 确保没有调用JQuery的多个实例

  • 如果您正在使用coffeescript,并且在开发过程中出现语法错误(我的例子中有额外的空格),那么一切都可以顺利进行,但在生产过程中就不会了。同样,当您预编译时,控制台的日志应该指出任何问题(如果有)

  • 在开发过程中查看Firebug中是否存在任何错误
    和生产

  • 如果所有这些都失败了,您可以尝试清理和预编译您的资产
    再说一遍


请检查错误

hi budy请在部署到生产模式之前对文件进行以下更改

------environment.rb-----

------Production.rb-------

-------application.rb-------


你好,4pcbr,感谢您的回复。网络控制台具有application.js中编译的功能;将subscribe.js重命名为它的controller.coffee文件有什么帮助吗?没有,没关系。你能提供更多关于你发现的错误的信息吗?在生产环境下运行dev服务器时,到底发生了什么?您看到了吗?再次感谢您的时间和对我的耐心。感谢您的反馈,非常感谢您的时间。
::ActiveSupport::Deprecation.silenced = true
config.assets.compile = ['*.js', '*.css']
config.active_support.deprecation = :silence
config.assets.enabled = true
config.assets.initialize_on_precompile = false