我想在我的电子邮件模板上使用application.css,但是我找不到一种方法来使stylesheet_link_tag帮助器包含样式表的完整URL,以便电子邮件客户端可以正确呈现。
默认情况下,stylesheet_link_tag只添加相对路径,因此,我想知道是否有办法告诉stylesheet_link_tay使用url,或者是将url返回到样式表的帮助器。
这适用于Rails 3.1,顺便说一下
答案 0 :(得分:0)
您可能会认为Hotmail,Gmail和Yahoo等市长提供商不支持<link rel=stylesheet>
:http://www.campaignmonitor.com/css/
您拥有的最佳选择是在您的身体或标题中使用<styles>
标记;甚至更丑陋,使用当今大多数电子邮件客户端支持的内联样式。
Google Mail特别会在电子邮件中的任何位置查找STYLE,并(有帮助)删除它。并且不必费心将CSS LINK用于样式表。 Google Mail,Hotmail和其他电子邮件软件会忽略,修改或删除对样式表的这些外部引用。
答案 1 :(得分:0)
Rails 3.1使用资产管道。如果您正在使用资产管道,那么您需要在application.css中提及这些资产。例如在application.css
中/*
* *application.css
*= require scaffold
*= require pagination
*= require_self
*= require_tree.
*/
在上面的脚手架和分页应该在rails_root / app / assets / stylesheets ditrectory下。有关详情,请查看http://guides.rubyonrails.org/asset_pipeline.html
或者,如果资产管道不是您的问题,请检查此电子邮件是否为HTML电子邮件。 http://railscasts.com/episodes/312-sending-html-email?view=asciicast
答案 2 :(得分:0)
您可以使用
指定资产的完整路径config.action_controller.asset_host =“http://www.yourdomainFORassets.com”
在您的环境配置文件
中你最好小心CSS文件中的图片网址,我必须移动一切 以这种方式使用现有代码,检查http://guides.rubyonrails.org/asset_pipeline.html 特别是这部分:
2.2.2 CSS和Sass
使用资产管道时,必须重写资产路径,并且sass-rails为以下资产类提供-url和-path帮助程序(在Sass中用连字符连接,在Ruby中加以强调):图像,字体,视频,音频,JavaScript和样式表。
image-url("rails.png") becomes url(/assets/rails.png)
image-path("rails.png") becomes "/assets/rails.png".
也可以使用更通用的表单,但必须同时指定资产路径和类:
asset-url("rails.png", image) becomes url(/assets/rails.png)
asset-path("rails.png", image) becomes "/assets/rails.png"
http://guides.rubyonrails.org/asset_pipeline.html#in-production
此致