rails 3.1邮件程序中的asset_url

Posted

技术标签:

【中文标题】rails 3.1邮件程序中的asset_url【英文标题】:asset_url in mailer on rails 3.1 【发布时间】:2011-12-12 20:17:27 【问题描述】:

我在 Rails 3.1 上有我的邮件,它有一个内联附件。

要打开该附件,我使用以下代码:

attachments["rails.png"] = File.read("#Rails.root/app/assets/images/Rails.png")

有没有办法用assets_url 之类的东西来改变它?

【问题讨论】:

您不需要(也不想)为此使用asset_url之类的东西...它只会为您节省前几句话。此外,更短的版本:File.read(Rails.root.join('app/assets/images', 'Rails.png')),您可以从中制作自己的类似“asset_url”的助手。 但我可以将我的资产放入供应商资产文件中,例如外部 js 文件,或者我想添加到电子邮件正文中的外部图像 你能做类似File.read(Rails.root.join('public', view_context.asset_path('Rails.png'))) 的事情吗?它应该作为编译资产始终在公共/资产中工作。 view_context 可能不是必需的(或者它可能在 ActionMailer 中不可用:()但让我们试一试! 【参考方案1】:

如果我理解正确,您想使用资产管道的搜索功能来定位给定资产的本地路径,这样您就不必硬编码它所在的目录。如果是这种情况,您想这样做这个:

<YourAppName>::Application.assets.find_asset('Rails.png').pathname

这将使用标准管道/链轮搜索来定位资产,并为您提供文件的完全限定本地路径。

【讨论】:

嗨,这给了我“app/assets/...”中的路径,但没有给出“public/assets”中的实际资产路径。虽然知道这一点很酷,但即使在生产环境中它没有给我我想要的目录。很高兴知道虽然我已经添加到我的笔记中。谢谢

以上是关于rails 3.1邮件程序中的asset_url的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Rails 应用程序中的一系列电子邮件中过滤掉不活动的电子邮件?

Heroku 环境中的 Ruby on Rails 应用程序:“使用 Mailgun 发送电子邮件”错误

Ruby On Rails 3.1 中的尾随日志文件

Rails 4 的动作邮件程序

从按钮引导程序 4 中删除禁用属性

将@font-face 与 Rails 3.1 应用程序一起使用?