问题标签 [sprockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
187 浏览

ruby-on-rails - 为什么 sprockets 会破坏我的图像?

这个图片

原始图像

变成

扭曲的

当通过带有链轮的导轨 3.1 WEBrick 131 观看时。

蚂蚁想法那里发生了什么?该请求也需要一分钟左右才能完成。图像越小破坏越少。

编辑:该文件是从资产目录提供的,不涉及任何操作。

0 投票
2 回答
1053 浏览

ruby-on-rails - Rails 3.1 CSS文件加载两次?

我正在使用 Rails 3.1 RC。我想手动加载 CSS,而不是通过资产管道。

我已经尝试过这样并带有手动编码标签:

出于某种原因,FireBug 向我显示了 global.css 文件的多个获取请求:

在此处输入图像描述

导轨错误?我傻吗?

如果有人想知道 - 我经常使用 CSSEdit,所以无法使用资产管道中的文件。

0 投票
2 回答
3631 浏览

ruby-on-rails - Rails 3.1:公共目录不再提供 js 资产。页面加载后如何加载额外的js文件?

我使用 jQuery 插件在初始页面加载后从服务器加载另一个 js 文件。由于所有 js 资产在 Rails 3.1 中都是串联的,并且公共目录不用于提供 js 资产,我该如何引用这个文件?我把它放在哪里?

0 投票
5 回答
34593 浏览

ruby-on-rails-3 - Rails 3.1 资产管道和手动订购的 Javascript 需要

我正在尝试将现有应用程序转换为新的 3.1 资产管道布局,并希望包含许多必须按特定顺序排列的供应商文件(underscore.js 和主干是一对)。因此,我不能只使用 a= require_tree .来拉入我的供应商文件(而不用前缀重命名每个文件。呸)。

以下在我的app/assets/javascripts/application.js文件中:

我已经尝试了每一种有/无扩展、有/无require_tree和有/无相对路径的组合,但没有任何效果。我所有的供应商文件都在/vendor/assets/javascripts/.

我觉得我很愚蠢,因为这似乎是一个如此明显的用例,(包括按名称排列的特定文件在 JS 中很常见,不是吗?)我一定是在做一些愚蠢的事情?

0 投票
29 回答
80889 浏览

javascript - 使用 Rails 3.1,您将“特定于页面”的 JavaScript 代码放在哪里?

据我了解,您所有的 JavaScript 都会合并到一个文件中。//= require_tree .Rails 在添加到application.js清单文件底部时默认执行此操作。

这听起来像是一个真正的救生员,但我有点担心特定于页面的 JavaScript 代码。这段代码会在每一页上执行吗?我想要的最后一件事是为每个页面实例化我的所有对象,而这些对象只需要在一页上。

此外,是否也有可能发生冲突的代码?

或者你是否script在页面底部放置一个小标签,它只是调用一个执行页面的javascript代码的方法?

那么你不再需要 require.js 了吗?

谢谢

编辑:我很欣赏所有的答案......而且我认为他们并没有真正解决问题。其中一些是关于样式的,似乎并不相关......而其他人只是提到javascript_include_tag......我知道存在(显然......)但看起来 Rails 3.1 的前进方式是总结所有您的 JavaScript 到 1 个文件中,而不是在每个页面的底部加载单独的 JavaScript。

我能想出的最佳解决方案是用s 或es将某些功能包装在div标签中。在 JavaScript 代码中,您只需检查或是否在页面上,如果是,则运行与其关联的 JavaScript 代码。这样,如果动态元素不在页面上,JavaScript 代码就不会运行——即使它已包含在Sprockets 打包的海量文件中。idclassidclassapplication.js

我上面的解决方案的好处是,如果 100 个页面中有 8 个包含搜索框,它将仅在这 8 个页面上运行。您也不必在网站的 8 个页面上包含相同的代码。事实上,您再也不必在任何地方的网站上包含手动脚本标签。

我认为这是我问题的实际答案。

0 投票
1 回答
1379 浏览

ruby-on-rails - 在 rails 3.1.rc1 的 javascript 资产中使用路径

myjavascript.js.erb我的资产路径中有一个文件。这是我放置所有与项目相关的 javascript 等的地方。

据我了解,rails 首先通过 erb 解释器运行该文件,然后加载生成的 JS 文件。

我的文件中有以下行

我希望这会记录项目的根路径,但不幸的是它似乎只会让我

当然这应该指向我的项目的根源?难道我做错了什么?

0 投票
2 回答
638 浏览

ruby-on-rails - Ruby on Rails 3.1 RC1 Javascript 资产管道问题

我刚刚升级到 Rails 3.1,在使用新的资产管道加载我的 Javascript 时遇到问题。

我已将 js 文件(文件本身及其 .min 变体)复制到我的 /app/assets/javascripts 目录中,我的 application.js 清单如下:

但这似乎不起作用;Easytabs 未正确加载。奇怪的是,当我在控制台中查看编译的 application.js 文件时,我可以看到 Easytabs 代码,但它不起作用。

我发现如果我将代码直接粘贴到 application.js 文件中,它会按预期工作,所以我知道脚本正在工作。但是,这不是 application.js 文件的预期用途。

为了确保正确加载 js 文件,我将不胜感激有关下一步去哪里的任何指导。

谢谢!

0 投票
1 回答
858 浏览

jquery - jQuery toggleClass('class', 1000) 仅切换 1 秒然后关闭,不切换 1 秒动画

我遇到了 jQuery UI 的toggleClass()的问题,如果我关闭持续时间,它会按预期运行,但是在指定的持续时间内,它只会在指定的持续时间内应用该类,然后删除该类。

以下代码在 jQuery 和 jQuery-UI 之后加载到单独的文件 (application.js) 中:

我正在使用带有 Coffeescript 和 Sprockets 2 的 Rails 3.1。

这是我的代码示例:http: //jsfiddle.net/27rNG/

我想要的行为是:-用户将鼠标悬停在图像上-图像动画向下一点-用户单击图像-图像向下移动了很多

我没有正确使用toggleClass吗?

更新:用法正确,但未正确加载 JQuery UI。我通过从 Google 的 CDN 中的 Rails 3.1 Sprockets 文件单独加载 JQuery UI 来解决此问题。

0 投票
14 回答
55195 浏览

ruby-on-rails - 如何在 Ruby on Rails 3.1 中禁用资产管道(链轮)消息的日志记录?

默认情况下,在 Ruby on Rails 3.1 (RC1) 下,Sprockets 在 (dev) 日志中往往非常冗长:

我想降低详细程度或完全禁用它。

我假设有一种干净的方法来禁用或减少日志记录的详细程度,方法是在其中一个environment.rbdevelopment.rb类似的配置行中添加一个配置行,以config.active_record.logger = nil使 ActiveRecord SQL 语句静音。

0 投票
2 回答
2481 浏览

extjs - Extjs 4 与 Rails 3.1 的集成(资产管道问题)

一个典型的 extjs 示例应用程序通过引用以下文件来包含 extjs 库:

ext-all.css ext-all.js

包含这些文件的“rails 3.1 方式”是什么,注意到它们引用了数百个文件?子目录中的文件

(例如 ext-4.0.2/resources/themes/stylesheets/ext4/default/_all.scss)

并且有相对路径:

(例如背景图像:url('../../resources/themes/images/default/shared/shadow.png'))

我尝试了许多 require_tree 等的组合,但似乎无法让它工作。

我想知道我是否需要弄乱“提供”,但我似乎找不到我需要的文档。