Tag: 链轮

Rails 3.1资产pipe道:如何加载控制器特定的脚本?

如果我在Rails 3.1中生成一个新的控制器,也会自动添加一个带有控制器名称的JavaScript文件。 首先,我认为这个JavaScript文件将被使用,当相关的控制器被调用。 默认情况下有指令//= require_tree . 在application.js文件中,包括树上的每个JavaScript文件。 我怎么能只加载控制器特定的脚本?

使用Rails 3.1资产pipe道来有条件地使用某些CSS

我正在使用Rails 3.1.rc5构build我的第一个独奏Rails应用程序。 我的问题是,我想让我的网站有条件地呈现各种CSS文件。 我正在使用Blueprint CSS,我试图在大多数情况下使用sprockets / rails渲染screen.css ,仅在打印时使用screen.css ,而只有在从Internet Explorer访问站点时使用screen.css 。 不幸的是, application.css清单中的默认*= require_tree命令包含assets/stylesheets目录中的所有内容,并导致令人不快的CSS混乱。 我目前的解决方法是一种蛮力方法,我个人指定的一切: 在application.css中: *= require_self *= require home.css … *= require blueprint/screen.css 在我的样式表partial(haml)中: <!–[if lt IE 9] <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> ![endif]–> = stylesheet_link_tag "application" = stylesheet_link_tag 'blueprint/print', media: 'print' <!–[if lt IE8]] = stylesheet_link_tag 'blueprint/ie' ![endif]–> = javascript_include_tag "application" 这工作,但不是特别漂亮。 我已经做了几个小时的search,甚至得到了这么多,但我希望有一些更简单的方法来做到这一点,我刚刚错过了。 如果我甚至可以有select地渲染特定的目录(不包括子目录),这将使整个过程僵化得多。 谢谢!

Rails 3.1资产pipe道和人工订购的Javascript需求

我试图将现有的应用程序转换为新的3.1资产pipe道布局,并且想要包含许多必须以特定顺序(underscore.js和主干为一对)的供应商文件。 因此,我不能只使用= require_tree . 拉入我的供应商文件,(不用重命名每个文件的前缀。 以下是我的app/assets/javascripts/application.js文件中: // =需要modernizr-1.7 // =需要jquery-1.6.1 // =要求下划线-1.1.5 // =需要backbone-0.3.3 // = require_tree。 我已经尝试了带/不带扩展的每个组合,带/不带require_tree和带/不带相对path,没有任何作用。 我所有的供应商文件都在/vendor/assets/javascripts/ 。 我觉得我很愚蠢,因为这似乎是这样一个明显的用例,(包括命名中的特定文件是常见的JS,不是?),我必须做一些愚蠢的东西?

如何在Rails 3.1中禁用资产pipe道(链轮)消息的日志logging?

在Rails 3.1(RC1)下,默认情况下,(dev)日志中的链轮往往是相当详细的: Started GET "/assets/application.css" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/application.css.scss (5ms) (pid 6303) Started GET "/assets/application.js" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/default.css.scss (15ms) (pid 6303) … Started GET "/assets/default/header_bg.gif" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Served asset /default/header_logo.gif – 304 Not Modified (7ms) (pid 6303) Served asset /default/header_bg.gif – 304 […]

使用Rails 3.1,你把你的“页面特定”JavaScript代码?

据我了解,所有的JavaScript被合并到1文件。 当Rails添加//= require_tree .时,Rails会默认执行此操作//= require_tree . 到你的application.js清单文件的底部。 这听起来像是一个真正的生活节省,但我有点关注页面特定的JavaScript代码。 此代码是否在每个页面上执行? 我想要的最后一件事就是当我们只需要在1页上的时候就为每个页面实例化所有的对象。 另外,是不是也有冲突的代码的可能性? 或者你在页面的底部放一个小script标签,只是调用一个方法来执行页面的JavaScript代码? 那么你不再需要require.js了吗? 谢谢 编辑 :我欣赏所有的答案…我不认为他们真的在解决问题。 其中一些是关于样式,似乎不涉及…和其他人只是提到javascript_include_tag …我知道存在(显然…),但似乎Rails 3.1前进的方式是包装所有的Javascript到1个文件中,而不是在每个页面的底部加载单个的Javascript。 我能想出的最好的解决方案是用id或ES class div标签包装某些功能。 在javascript代码中,您只需检查页面上是否存在id或class ,如果是,则运行与之关联的javascript代码。 这样,如果动态元素不在页面上,JavaScript代码不会运行 – 即使它包含在由Sprockets打包的大量application.js文件中。 我的上述解决方案具有如下优点:如果在100个页面中的8个页面上包含搜索框,则它将仅在这8个页面上运行。 您也不必在网站上的8页上包含相同的代码。 事实上,您再也不必在网站上包含手动脚本标记。 我认为这是我的问题的实际答案。