即使在 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 也未预编译的主要内容,如果未能解决你的问题,请参考以下文章