问题标签 [asset-pipeline]

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 投票
3 回答
6435 浏览

ruby-on-rails-3 - uglifier 在 Rails 中不起作用

我在 app/assets/javascripts 中有我的 javascript 文件。我的 javascript 文件没有被压缩。按照这个网址http://dev.mensfeld.pl/category/rails3/进行锻炼压缩。

感谢您的任何指示。

0 投票
4 回答
9445 浏览

ruby-on-rails - 将预编译的 Rails 3.1 资产上传到 Amazon S3 的工作 Capistrano 配方

我们有一个 Rails 3.1 应用程序,允许用户将照片上传到 Amazon S3。由于我们在生产中使用 S3,我想自动(打开cap deploy)也将预编译的资产(application.js 和 application.css 和图像)上传到我们的 S3 存储桶,在那里它们将被提供。很简单。

超越设定config.action_controller.asset_host = "http://assets.example.com"

简而言之,我正在为 Capistrano 寻找一些可行的“食谱”示例,但似乎找不到任何现代(兼容 3.1 资产管道)的示例。我们已成功预编译资产,但如何将它们移至 S3?而且,理想情况下,只有那些已经改变的?

当前“食谱”的“肉”:

0 投票
2 回答
3501 浏览

ruby-on-rails - Rails 3.1 Asset Pipeline - 关闭 Heroku 上的图像资产指纹识别?

因为我在应用程序中使用的 jQuery 插件直接引用了图像,所以我试图关闭资产指纹识别。

所以我config.assets.digest = false在我的 production.rb 中设置,但现在我的图像参考都不起作用。/assets/foo.png只是返回一个空白响应。

我真的不想更改 jQuery 插件的代码并添加 erb 图像助手,但我不确定还能做什么。坦率地说,图像的资产指纹识别似乎比它的价值要麻烦得多。

有没有人有任何见识?

谢谢!

0 投票
2 回答
16614 浏览

javascript - 使用 Rails 3.1 资产管道的 JavaScript 代码中图像的 URL?

在 CSS 文件中,您可以使用以下方法获取图像资产(带有指纹)的正确名称:

但是你如何从 JavaScript 文件中做同样的事情呢?

0 投票
2 回答
1067 浏览

ruby-on-rails - Rails 3.1:应该将文件上传添加到资产管道吗?

我有一个允许用户上传图片的 rails 3.1 应用程序。这些图片是否应该存储为资产(在应用程序/资产中)并因此受到 Sprocket 开销(缓存、指纹识别等)的影响?或者我应该将它们保存在公共/图像中并将它们存储在资产管道之外?

0 投票
6 回答
8652 浏览

ruby-on-rails - 在 Rails 3.1 中,如何从控制器中引用已编译的资产?

我在我的控制器中使用 PDFkit 来构建一系列 PDF,将它们压缩,然后将它们发送给用户。

为了控制输出样式,我告诉 PDFKit 在内容生成期间使用哪些样式表。我需要传递 CSS 文件的文件引用。由于 Rails 现在正在编译和重命名我的样式表,我不确定如何在我的控制器中引用编译后的 CSS 资产。

这是我以前做的:

Sass::Plugin.options[:css_location] 现在返回不正确的位置,更不用说 application.css 不再是文件的有效名称。我应该提一下,我有一个 app/assets/application.css 文件作为我的 SCSS 文件的清单,并且它通过 stylesheet_link_tag() 方法在我的视图正常工作。

基本上我正在寻找的是一个等效于asset_path()的控制器,以便执行以下操作:

任何人都可以帮忙吗?

0 投票
1 回答
1074 浏览

ruby-on-rails - Rails 3.1 资产在生产中被指纹识别,但渲染的 HTML 不是

在开发中一切都很好。Capistrano 可以正常部署应用程序。资产(javascript 和 css)似乎已完全预编译,并且每个资产连同图像都被赋予了“指纹”。问题是image_tag("image-name.png")在我看来使用它在生产中创建的 html 不包含“指纹”。

我们在生产中得到的渲染 HTML:

而不是,我所期望的应该是:

那么我们破坏了 Rails 3.1 的无数配置选项中的哪一个?

编辑

麻烦的图像似乎是我们使用的第 3 方Colorbox图像查看工具中包含的图像。Rails 3.1 正在对其资产(border.png 等)进行指纹识别,但很明显,这个 javascript 库的源代码不使用像image_tag. 所以在生产中它仍在寻找名为/assets/colorbox/border.png. 当前图像位于 /vendor/assets/images 中,并且在开发中可以正常工作。有没有办法防止这些图像被“指纹”?

0 投票
3 回答
430 浏览

ruby-on-rails-3.1 - rails 3.1 维护页面资产

在启用资产管道的情况下,如何在 rails 3.1 的维护页面上访问资产?

启用资产管道后,所有资产的文件名中都有一个哈希值。但是,维护页面是普通的 HTML,并且 rails/passenger 被 apache 配置绕过,因此无法生成正确的资产路径。

我需要我的 application.css 和一个图像文件。如果他们是旧的,那很好。

我能想到一些kludges,但它们都很蹩脚:

  • 在每次部署时,将我需要的资产符号链接到我在维护文件中使用的通用名称。
  • 使我的维护页面动态化,生成它,并将标记转储到某处 - 然后修改我的维护“部署”脚本。
0 投票
1 回答
1269 浏览

ruby-on-rails - Rails 3.1 资产管道引用了错误的图像

在我的application.css.scss我引用这样的图像:

它位于app/assets/images/background.png并且在开发中运行良好。

我正在部署到 Heroku,所以我需要预编译资产。在我运行rake assets:precompile编译文件后public/assets/,我的 background.png 得到这个文件名:(background-876262e736e0b48500313d1a48005396.png毫不奇怪,我知道这是指纹)。

令我困惑的是编译后的application-7665539658a117373a79cd8568f36315.css尝试加载/assets/background-61d37b9fc285589fc0016694e6f8d134.png,这显然是错误的指纹。

所以我删除了所有文件public/assets/并再次编译,将新文件添加到 git(并删除旧文件),提交并推送到 Heroku - 但没有运气:CSS 仍然使用错误的background-xyz.png.

有谁知道如何解决这个问题?

0 投票
2 回答
816 浏览

ruby-on-rails-3 - Rails 3 - 资产管道 - 缓存资产

我在开发中的页面加载时间很慢。

已经做到了config.assets.digest = true,并且config.assets.debug = false让 rails 只生成一个 CSS / JS 文件。

问题是,所有资产都是在缓存设置为 NO 的情况下发送的。所以浏览器一直在为每一个资产(images/css/js)查询

有没有办法让 Rails3.1 设置让浏览器缓存所有资产?