【问题标题】:Object has no method 'S3Uploader' with rails s3_direct_upload对象没有带有rails s3_direct_upload的方法'S3Uploader'
【发布时间】:2014-01-25 05:36:34
【问题描述】:

tl;dr:当自定义 jQuery 函数在开发中消失​​时,您可能需要删除之前预编译的 public/assets/javascripts/application.js 文件

我有一个已部署到 Heroku 的 rails 应用程序,然后想添加 s3_direct_upload 以让用户将文件上传到 Amazon Web Services (AWS) S3。我使用http://blog.littleblimp.com/post/53942611764/direct-uploads-to-s3-with-rails-paperclip-and 的综合教程修改了https://github.com/thoughtbot/paperclip_demo 的回形针演示应用程序

但是,虽然修改后的回形针演示有效,但当我尝试将该代码迁移到我更复杂的应用程序时,使用以下 Javascript:

$(function() {
  $('#s3_uploader').S3Uploader(
    { 
      remove_completed_progress_bar: false,
      progress_bar_target: $('#uploads_container')
    }
  );
  $('#s3_uploader').bind('s3_upload_failed', function(e, content) {
    return alert(content.filename + ' failed to upload');
  });
});

我在浏览器的 Javascript 调试器中遇到错误

Uncaught TypeError: Object [object Object] has no method 'S3Uploader'

但是,s3_direct_upload.js 被包含在内,并包含该行

 $.fn.S3Uploader = function(options) {...}

应该已经为 jQuery 定义了 S3Uploader 函数。

我注意到,虽然所有 jQuery Javascript 都单独包含在生成的 .html 中,但 application.js 也包含在内,并且还包含似乎是 jQuery 的压缩版本。我的 app/assets/javascripts/application.js 包含加载 Zurb Foundation javascript 的行。

【问题讨论】:

    标签: jquery ruby-on-rails heroku zurb-foundation


    【解决方案1】:

    JS files double-included in rails app 所述,当 Rails Javascript 似乎被双重加载时,问题可能是您之前已经预编译了资产,这通常是部署到 Heroku 所需要的。

    如上所述,解决方案是删除 public/assets/application.js(和 application.js.gz)

    当我这样做时,s3_direct_upload 适用于我更大的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多