Rails 4.2 不创建非消化资产

Posted

技术标签:

【中文标题】Rails 4.2 不创建非消化资产【英文标题】:Rails 4.2 not creating non-digested-assets 【发布时间】:2015-06-09 07:08:05 【问题描述】:

我正在开发 Rails 4.2.0 。根据 rails 4 新的资产管道策略,同时预编译仅创建消化的资产。我正在使用 AWS Cloudfront 提供静态资产。因此,与预编译一起,我使用 gem asset_sync 将编译后的资产推送到云端。但我面临一个问题。我正在提供一些图片,如下所示。

<%= image_tag "/assets/defaults/some_name.png" %> 
<img src="<%= asset_path("/assets/img/some_name.gif") %>" style="height:20px; margin: 0 5px;"/>

以及一些 .scss 文件中的一些图像,如下所示。

 background: url(/assets/img/some_name.png) no-repeat;

但这些图片无法正常投放,因为原始名称中没有文件。只有消化版本可用。我正在使用的一些字体文件也发生了同样的问题。因此,请任何人帮助我解决如何使用 image_tag 或创建非摘要资产来提供摘要图像。

【问题讨论】:

【参考方案1】:

您可以通过以下方式访问图像。

<%= image_tag "defaults/some_name.png" %> 
<img src="<%= asset_path("img/some_name.gif") %>" style="height:20px; margin: 0 5px;"/>
background: url(asset-path('img/some_name.png')) no-repeat;

【讨论】:

以上是关于Rails 4.2 不创建非消化资产的主要内容,如果未能解决你的问题,请参考以下文章

Rails 6 的资产管道中不存在资产“application.js”

如何在 Rails 4.2 中为多对多关联创建表单

Rails:application.css 不在资产管道中

Rails 4.2 - 最后一条记录的#created_at是否超过1天?

在 Rails 4 生产环境中找不到资产的 404 错误

Rails 4.2 从活动作业中获取延迟的作业 ID