Ich habe kürzlich alle meine App-Assets nach CDN verschoben und alles funktioniert einwandfrei. Alle Bilder werden in Ansichten geladen. Aber mein Problem ist, dass meine Bilder nicht in E-Mails geladen werden, die ich aus meiner Anwendung sende. Ich habe my CDN Path
in production.rb
Datei auch angegeben, aber immer noch nicht funktioniert. Wenn ich dieses Bild in E-Mails überprüfe, habe ich nicht einmal src
für dieses Bild bekommen.Bilder werden nicht in E-Mails mit CDN-Hosts geladen. Url rails
Ich lade meine Bilder mit image_tag
.
Kann jemand mir bitte helfen, auf diesem:
Production.rb:
config.action_controller.asset_host = AssetsCdn.new
config.action_mailer.asset_host = AssetsCdn.new
config.action_mailer.default_url_options = { :host => 'localhost', :protocol => 'http' }
config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = false config.action_mailer.default :charset => "utf-8"
config.action_mailer.delivery_method = :smtp #:mailhopper
AssetsCdn Klasse:
require 'zlib'
class AssetsCdn
CSS_CDN = "cdn-css"
CSS_CDN_0 = "cdn-css0"
CSS_CDN_1 = "cdn-css1"
CSS_CDN_2 = "cdn-css2"
JS_CDN = "cdn-js"
JS_CDN_0 = "cdn-js0"
JS_CDN_1 = "cdn-js1"
JS_CDN_2 = "cdn-js2"
ASSETS_CDN = "cdn-assets"
ASSETS_CDN_0 = "cdn-assets0"
ASSETS_CDN_1 = "cdn-assets1"
ASSETS_CDN_2 = "cdn-assets2"
ALL = [CSS_CDN_0, CSS_CDN_1, CSS_CDN_2, JS_CDN_0, JS_CDN_1, JS_CDN_2, ASSETS_CDN_0, ASSETS_CDN_1, ASSETS_CDN_2]
def call(source, request = nil)
cdn_index = Zlib.crc32(source) % 3
if source.ends_with?('.css')
url("#{CSS_CDN}#{cdn_index}", request)
elsif source.ends_with?('.js')
url("#{JS_CDN}#{cdn_index}", request)
else
url("#{ASSETS_CDN}#{cdn_index}", request)
end
end
def url(cdn_subdomain, request = nil)
return "//#{cdn_subdomain}-#{localhost}:3000"
end
end
TIA.
@spickermann Ich verwende eine Klasse, um dynamische URLs für meine js, css und Bilddateien zu generieren. In production.rb erstelle ich also ein Objekt für diese Klasse. In Ansichten und alles funktioniert gut. aber in E-Mails wird nicht geliefert. Ich bekomme in E-Mails keinen Link zu diesem Bild. leeres Bild-Tag zeigt – anusha
@spickermann: '' wie das ich bekomme Bild in E-Mail – anusha
@spickermann Ich rufe diese Klasse in prodcution.rb wie angenommen, dass Klassenname AssetsCDN ist, verwende ich dies: 'config.action_mailer. asset_host = AssetsCDN.new'. Da wir URLs mit Pfaden von Bildern generieren – anusha