我是在处理“公共场所”吗?目录正确的方式?

时间:2014-12-20 12:15:50

标签: ruby-on-rails image email ruby-on-rails-4 asset-pipeline

我正在使用Ruby on Rails 4.1.1,我希望在电子邮件中添加链接图像 - 我的应用程序的徽标 - 但我对previous question以来有疑问。

通过使用位于public目录中的文件,似乎链接到资产管道中的图像,您可以使用

link_to(LINK_TEXT_OR_IMAGE_TAG_HELPER, image_path(IMAGE_NAME))

但是对于位于app/assets的人来说似乎不能正常工作,至少在生产模式下呈现的电子邮件中是这样。 在Production中编译的所有资产都有一个指纹ID ...是指纹,导致静态资产的加载不会在电子邮件中呈现图像?

我怀疑,因为我想从浏览器和电子邮件访问图像。我尝试通过将图片从app/assets/images/logo.png移动到public/images/logo.png并将application.css.scss文件中的语句从image-url("logo.png")更改为url("/images/logos.png")来解决此问题。但是我不知道我是否遵循“Rails方式”或“最佳实践”。我呢?我应该在public目录中添加我计划在我的应用程序之外使用的所有资产以及app/assets目录中我计划在我的应用程序内部使用的所有资产吗?

1 个答案:

答案 0 :(得分:0)

对于电子邮件,与标准的Rails视图相比,它几乎没有任何不同。

您可以使用常规视图中通常使用的image_tag助手链接到邮件中的图片:

<%= image_tag('some_image.jpg') %>

您还需要告诉Action Mailer它可以找到资产的位置,因为它将使用绝对URL来引用您的图像:

config.action_mailer.asset_host = 'http://www.example.com/'