6

Mam problem z wykorzystaniem dowolnej formy potoku zasobów w programie Mailer, a także samego Mailera lub widoku.Jak korzystać z zasobów w programie Mailer?

Poniższy tekst tworzy i pusty znacznik obrazu src.

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

Pusty tag obraz wygląda tak:

img alt = „Nagłówek generalny”

Poniższy formularz dołączania pliku przez model i używanie go w widoku przywiązuje pusty obraz.

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

Sprawdziłem ścieżkę, a nawet próbowałem z wieloma ścieżkami i tak dalej, ale bez powodzenia. Proszę o pomoc. Pomocna byłaby każda forma umieszczenia obrazu w wiadomości e-mail.

Oto opis producenta.

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 

Dzięki!

+0

Kilka ogólnych wskazówek dotyczących debugowania tego, co również dałoby dodatkowe informacje na temat tego pytania. # 1. Jeśli wyświetlasz ten sam obraz w zwykłym widoku, czy jest wyświetlany? Jeśli tak, jaki jest wygenerowany adres URL obrazu? # 2. W wersji mailer atrybut src jest pusty? Dołącz tag img, który został wygenerowany w pytaniu. # 3. Zachowaj ostrożność podczas buforowania przeglądarki, próbując różnych konfiguracji, aby to naprawić. Przeglądarka może nadal wyświetlać "pusty" obraz nawet po rozwiązaniu problemu. # 4. Dołącz plik konfiguracyjny środowiska w ramach tego pytania. – cailinanne

+0

Cześć dzięki za komentarz. Zmieniłem moje pytanie, by dołączyć więcej rzeczy. Nie ma dziwactwa cache ani czegoś innego. Po prostu nie działa – YavorIvanov

Odpowiedz

4

Według sekcji 2.3.3 Making Inline Attachments, aby utworzyć załącznik inline zrobisz następująco

attachments.inline['image.jpg'] = File.read('/path/to/image.jpg') 

Tak więc w Twoim przypadku powinno być

attachments.inline['header.jpg'] = File.read("#{Rails.root}/app/assets/images/emails/header-general.png" 
1

zestaw config.action_controller.asset_host i config .action_mailer.asset_host i to działa dobrze.

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