在Rails 3.1上有类似stylesheet_url的东西吗?

时间:2012-01-10 17:24:08

标签: ruby-on-rails assets

我想在我的电子邮件模板上使用application.css,但是我找不到一种方法来使stylesheet_link_tag帮助器包含样式表的完整URL,以便电子邮件客户端可以正确呈现。

默认情况下,stylesheet_link_tag只添加相对路径,因此,我想知道是否有办法告诉stylesheet_link_tay使用url,或者是将url返回到样式表的帮助器。

这适用于Rails 3.1,顺便说一下

3 个答案:

答案 0 :(得分:0)

您可能会认为Hotmail,Gmail和Yahoo等市长提供商不支持<link rel=stylesheet>http://www.campaignmonitor.com/css/

您拥有的最佳选择是在您的身体或标题中使用<styles>标记;甚至更丑陋,使用当今大多数电子邮件客户端支持的内联样式。

  

Google Mail特别会在电子邮件中的任何位置查找STYLE,并(有帮助)删除它。并且不必费心将CSS LINK用于样式表。 Google Mail,Hotmail和其他电子邮件软件会忽略,修改或删除对样式表的这些外部引用。

http://www.reachcustomersonline.com/2011/12/21/09.27.00/

答案 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

此致