如何在 Mailer 中使用资产? [英] How can I use assets within Mailer?

查看:32
本文介绍了如何在 Mailer 中使用资产?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法在邮件程序中使用任何形式的资产管道,无论是邮件程序本身还是视图.

I have trouble using any form of the asset pipeline within mailer, wether the Mailer itself or the view.

以下生成并清空 src 图像标签.

The following produces and empty src image tag.

<%= image_tag "emails/header-general.png" %>

空图片标签如下所示:

img alt="Header-general"

img alt="Header-general"

以下形式通过模型附加文件并在视图中使用它附加一个空图像.

The following form of attaching a file through the model and using it in the view attaches an empty image.

attachments.inline['header.jpg'] = 'emails/header-general.png'
...
<%= image_tag attachments['header.png'] %>

我确实检查了路径,甚至尝试了多个路径等等,但没有成功.请帮忙.在电子邮件中包含图片的任何形式都会有所帮助.

I did check the path and even tried with multiple paths and so on but with no luck. Please help. Any form of including an image within the email would be helpful.

这是生产环境.

Xenium::Application.configure do
# Settings specified here will take precedence over those in config/application.rb

# Code is not reloaded between requests
config.cache_classes = true

# Full error reports are disabled and caching is turned on
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress JavaScripts and CSS
config.assets.compress = true

# Choose the compressors to use
config.assets.js_compressor  = :yui
config.assets.css_compressor = :yui

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

# Generate digests for assets URLs
config.assets.digest = true

# Defaults to Rails.root.join("public/assets")
# config.assets.manifest = YOUR_PATH

# Specifies the header that your server uses for sending files
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true

# See everything in the log (default is :info)
config.log_level = :fatal

# Use a different logger for distributed setups
# config.logger = SyslogLogger.new

# Use a different cache store in production
config.cache_store = :mem_cache_store

# Enable serving of images, stylesheets, and JavaScripts from an asset server
#config.action_controller.asset_host = "http://asset.xenium.bg"

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
# config.assets.precompile += %w( search.js )

# Disable delivery errors, bad email addresses will be ignored
config.action_mailer.raise_delivery_errors = true
#config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "localhost",
:port                 => 25,
:domain               => 'xenium.bg',
#:user_name            => '<username>',
#:password             => '<password>',
#:authentication       => 'plain',
:enable_starttls_auto => false
}

# Enable threaded mode
# config.threadsafe!

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found)
config.i18n.fallbacks = true

# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
end

谢谢!

推荐答案

设置 config.action_controller.asset_host 和 config.action_mailer.asset_host 就可以了.

set config.action_controller.asset_host and config.action_mailer.asset_host and this works well.

config.action_mailer.asset_host = URL from where pick image
<%= image_tag image_path('logo.png') %>

这篇关于如何在 Mailer 中使用资产?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆