【发布时间】: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