即使在 config/initializers/assets.rb 中声明,Sprockets Rails Helper Asset 也未预编译

Posted

技术标签:

【中文标题】即使在 config/initializers/assets.rb 中声明,Sprockets Rails Helper Asset 也未预编译【英文标题】:Sprockets Rails Helper Asset Not Precompiled even though declared in config/initializers/assets.rb 【发布时间】:2016-08-12 08:29:38 【问题描述】:

我有一个带有邮件程序的 Rails API。在我的邮件布局中,我包含了一张图片:

<html>
  <body>
    <%= image_tag "quickbed_logo" %>
    <%= yield %>
  </body>
</html>

存储在 app/assets/images 中。

但是,当我发送电子邮件时,我收到了:

Sprockets::Rails::Helper::AssetNotPrecompiled - Asset was not declared to be precompiled in production.
Add `Rails.application.config.assets.precompile += %w( quickbed_logo )` to `config/initializers/assets.rb` and restart your server:

我遵守了错误信息,将Rails.application.config.assets.precompile += %w( quickbed_logo )添加到config/initializers/assets.rb

但是我仍然收到错误消息。我做错了什么?

【问题讨论】:

您是否尝试将扩展名添加到您的文件名中? Rails 无法真正猜到它。另外,当您运行“RAILS_ENV=production bin/rails assets:precompile”时,图像是否已预编译? 你的服务器重启了吗? @PoloniculMov 添加扩展解决了它 【参考方案1】:

将扩展名添加到Rails.application.config.assets.precompile += %w( quickbed_logo.png ),因为Rails 无法猜到它。

【讨论】:

config/initializers/assets.rb的完整文件路径是什么?至少父目录是什么?为什么这甚至是必要的?为什么它不能通过applications.js 工作? @iyrin 父目录是应用程序的文件夹。

以上是关于即使在 config/initializers/assets.rb 中声明,Sprockets Rails Helper Asset 也未预编译的主要内容,如果未能解决你的问题,请参考以下文章

即使屏幕关闭,如何在后台运行代码?

即使在采取响应操作后,UIAlertView 也不会消失

为啥即使在 System.exit(0) 之后也需要返回;

Tensorflow:即使在关闭会话时内存泄漏?

即使我阻止横向旋转,屏幕也在旋转

Xcode 测试:清理代码,即使停止