2016-12-23 35 views
12

Mam stylów chcę użyć w moich e-maili w formacie HTML w ścieżce: app/vendor/assets/stylesheets/inspinia/email_templates/email-styles.cssJak określić arkusz stylów dla wiadomości e-mail w formacie HTML za pomocą klejnotu Premailer-Rails?

Używam Premailer-Rails gem na mój e-mail stylizacji.

W moim mailer.html.erb układzie, mam następujący:

<%= stylesheet_link_tag "inspinia/email_templates/email-styles.css", media: 'all' %> 

Jednak w moich dziennikach na Heroku, pojawia się następujący komunikat:

app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] Started GET "/stylesheets/inspinia/email_templates/email-styles.css" for 54.167.56.21 at 2016-12-23 23:25:08 +0000 
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] 
2016-12-23T23:25:08.286725+00:00 app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] ActionController::RoutingError (No route matches [GET] "/stylesheets/inspinia/email_templates/email-styles.css"): 

Więc jak mogę wymyślić/określić poprawna ścieżka do tego arkusza stylów w produkcji?

+0

spróbować umieścić swoje style maila do 'vendor/aktywa/...' 'zamiast app/vendor/assets/..'. –

Odpowiedz

1

Dodaj do config/initializers/assets.rb następujące:

Rails.application.config.assets.precompile << 'email-styles.css' 
Rails.application.config.assets.paths << Rails.root.join('app/vendor/assets/stylesheets/inspinia/email_templates') 

Następnie użyj <%= stylesheet_link_tag 'email-styles.css', media: 'all' %> w szablonie.

2

spróbuj przenieść email-styles.css do folderu /public/assets/ lub dodaj do potoku aktywów. Premailer barierki wiki:

  1. File System: Jeśli istnieje plik wewnątrz społeczeństwa/z tej samej ścieżce co w adresie URL, to jest odczytywane z dysku. Na przykład. jeśli adres URL to http://cdn.example.com/assets/email.css, zawartość pliku znajdującego się pod adresem public/assets/email.css zostanie zwrócona, jeśli istnieje.

  2. Przewód aktywów: Jeśli dostępne są szyny i potok zasobów jest włączony, plik jest pobierany przez potok zasobów. Na przykład. jeśli adres URL to http://cdn.example.com/assets/email-fingerprint123.css, plik email.css jest żądany z potoku zasobów. Oznacza to, że odcisk palca i prefiks (w tym przypadku zasoby są prefiksem) są usuwane przed wysłaniem żądania z potoku zasobów.