Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails mailer标志。url_与附件_Ruby On Rails_Ruby_Email_Mailer - Fatal编程技术网

Ruby on rails Rails mailer标志。url_与附件

Ruby on rails Rails mailer标志。url_与附件,ruby-on-rails,ruby,email,mailer,Ruby On Rails,Ruby,Email,Mailer,我正在Rails4中使用mailer实现一个特性。 我通过使用内联附件在用户收到的电子邮件上显示徽标。它运行良好,但我的主管让我尝试另一种方法。这是他的问题: 是否需要附加徽标?不是使用附件,而是url_? 使用url_表示图像的绝对路径。这样,图像可以在我们的网站上托管,同时在电子邮件中使用 -- 我正试图找到答案,但找不到。另外,我能让它工作的唯一方法是使用内联附件。如果您想在邮件中使用url\u作为或xxx\u url帮助程序,您必须在config/environments/下的文件中进

我正在Rails4中使用mailer实现一个特性。 我通过使用内联附件在用户收到的电子邮件上显示徽标。它运行良好,但我的主管让我尝试另一种方法。这是他的问题:


是否需要附加徽标?不是使用附件,而是url_? 使用url_表示图像的绝对路径。这样,图像可以在我们的网站上托管,同时在电子邮件中使用

--


我正试图找到答案,但找不到。另外,我能让它工作的唯一方法是使用内联附件。

如果您想在邮件中使用
url\u作为
xxx\u url
帮助程序,您必须在
config/environments/
下的文件中进行一些配置

config.action_mailer.default_url_options = {host: 'www.example.org', protocol: 'https'}
要在邮件模板中使用
image\u url
asset\u url
,还需要添加

config.action_mailer.asset_host = 'https://www.example.org'
顺便说一下,内联附件是附件,它们确实增加了邮件的大小,但可以在没有收件人许可的情况下显示


另一方面,
url\u为
或某种类型引用的图像仅为url,因此减少了邮件的大小,但MUA必须发送单独的请求来下载图像,未经收件人许可,他们不能这样做。如果收件人拒绝下载,他将看到一个丑陋的损坏图像图标。

您可以使用
image\u标签
从web服务器加载图像。在视图中,我尝试了:=image\u标签(“logo.jpg”),但它只显示我在config/environments/development.rb中的损坏图像:config.action\u mailer.default\u url\u选项={host:'localhost',port:3000}这样行吗?如何在邮件程序的视图中编写url,以便在您的资产中显示图像?如果您的图像是
/public
下的静态文件,则只需
根url+'/path/to/your.jpg'
。如果图像在
应用程序/资产
下,则使用
图像url('your.jpg')
谢谢Aetherus。我的图像在app/assets/images/logo.jpg################电子邮件仍然显示一个损坏的图像,当我检查图像时,我得到的是:使用
图像url('logo.jpg'))
。顺便说一句,
app/assets
和子文件夹中的所有文件最终将进入
public/assets
,文件名中将添加文件的MD5摘要,以使旧文件的缓存过期。
image\u url
将考虑该摘要。使用image\u url('logo.jpg'))我明白了:/assets/logo-214af1e6d7e5b68f14fbe7837bbea91cce55e9076926b51f2a0ff499bc2bab10.jpg########我试过=image_标签(“logo”),但都是一样的