roc*_*ist 9 ruby-on-rails ruby-on-rails-3 asset-pipeline
我的Mailer模板中的视图助手为我提供了样式表和图像的相对URL.当然,如果我在Gmail中查看电子邮件,这将无效.
在 apps/views/layouts/mailer.html.erb
<%= stylesheet_link_tag "application" %>
...
<%= link_to(image_tag("logo.png"), "http://mysite.com") %>
呈现为:
<link href="/assets/application-c90478153616a4165babd8cc6f4a28de.css" media="screen" rel="stylesheet" type="text/css" />
...
<a href="http://mysite.com"><img alt="Logo" src="/assets/logo-d3adbf8d0a7f7b6473e2130838635fed.png" /></a>
我如何让Rails给我绝对链接呢?我在Rails 3.1上,资产管道生效.
小智 13
`config.action_controller.asset_host处理从ActionController生成的视图中的主机前缀.
对于电子邮件中生成的任何内容,您正在寻找ActionMailer配置选项,更具体地说:
ActionMailer::Base.asset_host将处理你的image_tags和ActionMailer::Base.default_url_options[:host]将照顾你的link_to标签.例如:
ActionMailer::Base.asset_host                 = "http://blah.com"
ActionMailer::Base.default_url_options[:host] = "blah.com"
请注意,您不需要为默认URL主机指定http前缀,也不需要为资产主机指定http前缀.
我在应用程序初始化程序之后在environment.rb中指定了这些.我建议为每个环境域设置一个应用程序配置变量.
Dav*_*ffe 11
对于rails 3.2和ActionMailer使用:
config.action_mailer.asset_host = "http://www.example.com"
| 归档时间: | 
 | 
| 查看次数: | 9548 次 | 
| 最近记录: |