【问题标题】:Rails 3.2 and jQuery function not working in productionRails 3.2 和 jQuery 函数在生产环境中不起作用
【发布时间】:2013-04-22 06:50:34
【问题描述】:

我在让资产管道编译的 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/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>

我的应用程序 Javascript

# app/assets/javascript/application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .

非常感谢任何帮助。谢谢

【问题讨论】:

    标签: jquery ruby-on-rails twitter-bootstrap ruby-on-rails-3.2 twitter-bootstrap-rails


    【解决方案1】:

    这发生在我之前,在我的例子中,我调用了多个 JQuery 实例。 所以:

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

    • 如果您使用的是coffeescript,并且在开发过程中出现语法错误(在我的情况下有多余的空格),一切都可以顺利进行,但在生产过程中却不会。同样,预编译时控制台的日志应该指出任何问题(如果有)。

    • 开发中查看 Firebug 中是否有任何错误
      和生产

    • 如果一切都失败了,您可以尝试清理和预编译您的资产
      再次。

    【讨论】:

      【解决方案2】:

      请检查错误

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

      -----环境.rb-----

      ::ActiveSupport::Deprecation.silenced = true
      

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

      config.assets.compile = ['*.js', '*.css']
      config.active_support.deprecation = :silence
      

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

      config.assets.enabled = true
      config.assets.initialize_on_precompile = false
      

      【讨论】:

      • 感谢您的反馈,非常感谢您的宝贵时间。
      【解决方案3】:

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

      如果是这样,看起来 config.serve_static_assets 在您的 rails 环境配置中设置为 false(默认情况下在生产模式下)。检查 config/environments/production.rb 文件。

      【讨论】:

      • 您好 4pcbr,感谢您的回复。网络控制台有在application.js中编译的功能;将 subscribe.js 重命名为它的控制器 .coffee 文件有什么帮助吗?
      • 不,没关系。您能否提供有关您捕获的错误的更多信息?在生产环境下运行开发服务器时到底发生了什么?您看到了吗?
      • 再次感谢您的时间和耐心等待我。
      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2018-09-19
      相关资源
      最近更新 更多