Pregunta

Los ayudantes de la vista en mi plantilla de correo me dan URL relativas a la hoja de estilo y las imágenes. Por supuesto, esto no funcionará si estoy viendo el correo electrónico en Gmail, por ejemplo.

En apps/views/layouts/mailer.html.erb

<%= stylesheet_link_tag "application" %>
...
<%= link_to(image_tag("logo.png"), "http://mysite.com") %>

Renders como:

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

¿Cómo consigo rieles para darme enlaces absolutos? Estoy en Rails 3.1, la tubería de activos está vigente.

¿Fue útil?

Solución

`config.action_controller.asset_host Maneja el prefijo del host en las vistas generadas a partir de un ActionController.

Para cualquier cosa generada en un correo electrónico, está buscando el Mailer de Action Opciones de configuración, más específicamente:

  • ActionMailer::Base.asset_host manejará su image_tags y
  • ActionMailer::Base.default_url_options[:host] Cuidará de su link_to Etiquetas.

p.ej:

ActionMailer::Base.asset_host                 = "http://blah.com"
ActionMailer::Base.default_url_options[:host] = "blah.com"

Tenga en cuenta que no necesita especificar el prefijo HTTP para el host de URL predeterminado, lo hará para el host de activos.

Los he especificado dentro de mi ambiente.rb Después del inicializador de la aplicación. Recomendaría establecer una variable de configuración de la aplicación para el dominio de cada entorno.

Otros consejos

Para Rails 3.2 y ActionMailer Use:

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

Esto podría ser un poco truco, pero si especifica un host de activo, todo Los ayudantes lo tendrán en cuenta Al renderizar enlaces. Entonces, si te configuras

config.action_controller.asset_host = "http://mysite.com"

en tu configuración, stylesheet_link_tag incluirá el nombre del host.

En este hilo de cohetscientist y Joe preguntó sobre otras ideas:

http://apidock.com/rails/actionview/helpers/assettaghelper/stylesheet_link_tag

Puede generar CSS completo de la siguiente manera (si no le importa el alojamiento de activos). Sin embargo, la respuesta de David Radcliffe debería funcionar.

stylesheet_link_tag "http://www.railsapplication.com/style.css" # =>
  <link href="http://www.railsapplication.com/style.css" media="screen" rel="stylesheet" type="text/css" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top