Questions tagged «sprockets»

29
使用Rails 3.1,您将“特定于页面的” JavaScript代码放在哪里?
据我了解,您所有的JavaScript都合并为1个文件。默认情况下,Rails在添加//= require_tree .到application.js清单文件的底部时会执行此操作。 这听起来像是真正的救命稻草,但我有点担心页面特定的JavaScript代码。此代码是否在每个页面上执行?我想要的最后一件事是,当只在一页上需要所有对象时,将为每页实例化我的所有对象。 此外,代码是否也可能发生冲突? 或者,您是否script在页面底部放置了一个小的标签,该标签只是调用执行该页面javascript代码的方法? 那么您不再需要require.js吗? 谢谢 编辑:我感谢所有的答案...,我认为他们并没有真正解决问题。其中一些是关于样式的,似乎没有关系...而其他人只是提到javascript_include_tag...,我知道确实存在(显然...),但是看来Rails 3.1的前进方向是包装所有内容。您的JavaScript分成1个文件,而不是在每个页面的底部加载单个JavaScript。 我能想到的最好的解决方案是div用ids或classes 将某些功能包装在标签中。在JavaScript代码中,您只需检查页面上的id或class,如果是,则运行与其关联的JavaScript代码。这样,如果动态元素不在页面上,则JavaScript代码不会运行-即使它已包含在application.jsSprockets打包的海量文件中。 我上面的解决方案的好处是,如果搜索框包含在100个页面中的8个页面中,它将仅在这8个页面上运行。您也不必在网站的8个页面中包含相同的代码。实际上,您再也不必在您的网站上再包含任何手动脚本标记。 我认为这是对我问题的实际答案。

14
如何在Ruby on Rails 3.1中禁用资产管道(链轮)消息的日志记录?
默认情况下,在Ruby on 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) …

3
使用Rails 3.1资产管道有条件地使用某些CSS
我正在使用Rails 3.1.rc5构建我的第一个单独的Rails应用程序。我的问题是我想让我的网站有条件地呈现各种CSS文件。我正在使用Blueprint CSS,并且试图在screen.css大多数情况下渲染链轮/轨道,print.css仅在打印ie.css时以及从Internet Explorer访问该网站时。 不幸的是,清单中的默认*= require_tree命令application.css包括assets/stylesheets目录中的所有内容,并导致令人不愉快的CSS混乱。我当前的解决方法是一种蛮力方法,其中我分别指定了所有内容: 在application.css中: *= require_self *= require home.css ... *= require blueprint/screen.css 在我的样式表中,部分(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" 这有效,但不是特别漂亮。我已经花了几个小时进行搜索,才能达到目标,但是我希望有一种更简单的方法,而我只是错过了。如果我什至可以选择性地呈现某些目录(不包括子目录),那么整个过程将变得不那么严格。 谢谢!

6
Rails 3.1 Asset Pipeline:如何加载特定于控制器的脚本?
如果我在Rails 3.1中生成一个新的控制器,则带有控制器名称的javascript文件也会自动添加。首先,我认为只有在调用相关的控制器时,才会使用此javascript文件。 默认情况下//= require_tree .,application.js-file中有指令,其中包括树上的每个javascript文件。 如何仅加载控制器特定的脚本?

1
从Rails Controller访问资产路径
我正在共享配置yml文件客户端,我也需要在服务器端加载,我将其放在app / assets / javascripts / configuration.yml中 我可以在视图内使用#{asset_path'configuration.yml'}来获取路径,但不能在控制器内使用。我可以使用“#{Rails.root} /app/assets/javascripts/configuration.yml”直接访问,但是在部署文件名时会附加摘要字符串。 如何从控制器获得相同的路径?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.