3
最近、すべてのアプリ資産をCDNに移動してすべて正常に動作しています。すべての画像がビューに読み込まれています。しかし、私の問題は、イメージが私のアプリケーションから送信している電子メールに読み込まれていないことです。 production.rb
ファイルにmy CDN Path
を指定しましたが、まだ動作しません。その画像を電子メールで調べると、その画像にはsrc
も届かなかった。CDNのメールで画像が読み込まれないホストのURL URL:
image_tag
を使用して画像を読み込み中です。
誰もがこの上で私を助けてください:
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クラス:
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私は、js、css、およびimageファイルの動的URLを生成するために1つのクラスを使用しています。したがって、production.rbでは、そのクラスのオブジェクトを作成しています。ビューですべてが正常に動作しています。電子メールでは表示されません。私は電子メールでそのイメージへのリンクを取得していません。空の画像タグが – anusha
@spickermann:のように表示されています。私はメールで画像を取得しています。 – anusha
@spickermannクラス名がAssetsCDNであると仮定して、prodcution.rbでそのクラスを呼び出しています。 'config.action_mailer。 asset_host = AssetsCDN.new'である。私たちは画像のパスでURLを生成しています – anusha