Tag: 资产管道

Rails 3.2.3 JavaScript突然停止工作

我不确定这是怎么发生或者为什么发生的,但是如果有人能提出行动方案,我真的很感激。 我可以在控制台中输入任何内容来找出它无法正常工作的原因吗? 我尝试了几次“捆绑更新”并重新启动了我的服务器,但没有任何工作。

JQuery在开发中工作,而不是在Heroku Cedar上生产

jQuery在本地开发,但在Heroku Cedar上没有生产。 我对Rails很新,所以我试图以正确的方式学习这一点,而不是仅仅将代码放入视图中。 我没有在服务器日志中看到任何错误。 我正在本地编译我的资产: 捆绑exec rake资产:预编译 然后将整个应用程序推送到Heroku。 我尝试了几种不同的gem组合,目前的配置: 的Gemfile source ‘https://rubygems.org’ gem ‘rails’, ‘3.2.11’ gem ‘bcrypt-ruby’, ‘3.0.1’ gem ‘execjs’ gem ‘jquery-rails’ gem ‘will_paginate’, ‘~> 3.0.0’ gem ‘sass-rails’, ‘~> 3.2.3’ gem ‘bootstrap-sass’, ‘~> 2.2.2.0’ gem ‘bootstrap-will_paginate’, ‘0.0.6’ gem “friendly_id”, “~> 4.0.9” gem ‘twitter’ gem ‘devise’ gem ‘cancan’ gem “paperclip”, “~> 3.0” gem “cocaine”, “= 0.3.2” […]

新Rails 3.2.8 app不加载jQuery

我今天做了一个rails new的rails new ,然后创建了一个简单的搜索栏: searching! 好吧,一些点击处理程序怎么样! 所以assets / javascripts / searching.js.coffee: $(‘#search-btn’).click -> alert ‘BOOM’ query = $(‘#search-bar’).html console.log query 没别的了。 所以我转到Chrome控制台: >$(‘a’) null >$(‘body’) null >$ function () { [native code] } 没有选择器的jQuery,没有太多帮助。 这里发生了什么? 如果我将到页面或我的layout.html.erb,我们一切都很好。 我对下划线-min.js(注意它不是.min.js)有同样的问题,尽管在资产/ javascripts中没有加载。 鉴于我的(未修改的)application.js,它应该加载当前文件夹: //= require jquery //= require jquery_ujs //= require_tree . UPDATE 如果我转到Chrome检查器的“资源”选项卡并查看application.js,我会看到: // This is a manifest […]

为什么这个JS会在一页上部分呈现而不是另一页?

我有一个posts.js文件,如下所示: var ready; ready = function() { var toggleSidebar = $(“.togglesidebar”); var primary = $(“#primary”); var secondary = $(“#secondary”); toggleSidebar.on(“click”, function(){ if(primary.hasClass(“col-sm-9”)){ primary.removeClass(“col-sm-9”); primary.addClass(“col-sm-12”); secondary.css(‘display’, ‘none’); } else { primary.removeClass(“col-sm-12”); primary.addClass(“col-sm-9”); secondary.css(‘display’, ‘inline-block’); } }); }; var counter = function(event) { var fieldValue = $(this).val(); var wc = fieldValue.trim().replace(regex, ‘ ‘).split(‘ ‘).length; var regex = […]

如何在Rails 3.1资产管道中正确使用jQuery?

我正在开发一个爱好应用程序并使用一些jQuery。 结果很好,但我是一个jQuery noob,我认为我可以对代码结构做出一些重大改进。 暂且不考虑Coffescript,我一直想知道的一件事是如何在资产管道中正确使用特定于模型的.js文件。 例如,在使用我的用户模型时,我可能会在文档准备好时运行一些我想要运行的代码。 假设我把它放在$(document).ready(function() {…}); 在Rails 3.1生成的users.js文件中。 第二天,我正在使用Pet模型,我想要在文档准备好的情况下运行代码。 我把它放在另一个$(document).ready(function() {…}); 在Rails准备的pets.js文件中。 这是我的问题出现的地方: 应用程序运行时如何编译? 我用上面的例子实例化了两个jQuery实例吗? 我应该只使用$(document).ready(function() {…}); 一旦进入应用程序或Rails将我的代码编译成一个单独的调用? 什么属于特定于模型的.js文件? 它在开发和生产模式中的执行方式是否存在差异?

Rails 3.1,资产管道和生产模式中的IE 6和7 – 一些CSS和js没有正确加载

在生产模式下试用我的Rails 3.1应用程序(Debian 6,Ruby 1.9.2,Passenger)。 我尝试使用IE 6和IE 7,并且一些资产未正确加载。 开发模式下一切正常。 有些css&js没有正确加载,你正在编译所有文件。 特别是我遇到了下拉菜单问题(jquery superfish菜单)。 在生产和开发中,IE8,IE 9,Firefox,Chrome中的一切都运行良好。 该问题仅出现在生产中的IE 6和7中。 尝试清除缓存(在浏览器和服务器上)。 重新编译资产。 什么都看不到帮助。 有没有人碰到任何东西 – 像那样?

Rails 3.1 with Asset Pipeline,link_to:确认消息显示两次?

好的,所以我看到这个问题是由jQuery或Prototype的多个链接引起的,但我可以确认我只在整个页面链接到jQuery 一次 。 我的问题是:当我有一个确认删除的link_to ,弹出窗口显示两次。 这是我模板中的适用代码(用Slim编写): link_to(‘Destroy’, depot_path(@depot.id), :confirm => “Really?”, :method => :delete) 我在运行资产管道时运行Rails 3.1.0 ,在我的Gemfile gem ‘jquery-rails’ ,以下内容在我的application.js文件中(由Sprockets为资产管道编译)。 //= require jquery //= require jquery_ujs //= require ‘underscore’ //= require ‘backbone’ 我的/vendor/assets/javascripts/目录中有underscore.js和backbone.js ,sprockets似乎找不到那些。 我还搜索了sprockets提供的application.js文件,jQuery只在那里一次,jQuery UJS只在那里一次。 这是我的页面呈现时的头部样子(我省略了显示的csrf-token值,FWIW)。 Administration subdata.js有一些特定于Backbone的代码; 没有什么可以选择再次包含jQuery。 这是什么交易? 我的项目中没有任何其他jQuery文件; 它都是通过jquery-rails gem管理的。 是什么导致我:confirm方法两次开火? 编辑 :我以前在Rails 3.1的RC5上看到了这个,但现在我也在Rails 3.1实际上看到了它。

Rails视图中的Javascript问题

在我的Rails视图模板中,我使用了一些jQuery来实现选项卡式面板function: … content ommitted $(document).ready(function () { $(‘.accordion-tabs-minimal’).each(function(index) { $(this).children(‘li’).first().children(‘a’).addClass(‘is-active’).next().addClass(‘is-open’).show(); }); $(‘.accordion-tabs-minimal’).on(‘click’, ‘li > a’, function(event) { if (!$(this).hasClass(‘is-active’)) { event.preventDefault(); var accordionTabs = $(this).closest(‘.accordion-tabs-minimal’) accordionTabs.find(‘.is-open’).removeClass(‘is-open’).hide(); $(this).next().toggleClass(‘is-open’).toggle(); accordionTabs.find(‘.is-active’).removeClass(‘is-active’); $(this).addClass(‘is-active’); } else { event.preventDefault(); } }); }); 因为我也在其他View模板中使用这个脚本,并且我想更好地组织我的Javascript,我在app / assets / javascripts下创建了一个Javascript文件(tabbed_pa​​nels.js)并将上面的脚本移到了tabbed_pa​​nels.js文件。 但是现在我的页面上的面板在第一次加载页面时没有内容。 只有刷新页面时,面板才会加载内容。 有人知道发生了什么以及如何解决这个问题,所以我的标签面板在第一页加载时有内容吗? 谢谢你的帮助, 安东尼