Есть ли что-то вроде stylesheet_url в Rails 3.1? - PullRequest
1 голос
/ 10 января 2012

Я хочу использовать application.css в своих шаблонах электронной почты, но не могу найти способ заставить помощника stylesheet_link_tag включить полный URL таблицы стилей, чтобы почтовые клиенты могли правильно отображаться.

Byпо умолчанию, stylesheet_link_tag только добавляет относительный путь, поэтому я хочу знать, есть ли способ сказать stylesheet_link_tay, чтобы использовать URL, или помощник, который возвращает URL в таблицу стилей.

Это для Rails3.1, кстати

Ответы [ 3 ]

0 голосов
/ 10 января 2012

Rails 3.1 использует конвейер активов. Если вы используете конвейер ресурсов, то вам нужно упомянуть эти активы в вашем application.css. Например в application.css

/*
* *application.css
*= require scaffold
*= require pagination
*= require_self
*= require_tree.
*/ 

В вышеприведенных скаффолдах и нумерации страниц следует располагать в каталоге rails_root / app / assets / stylesheets Для получения дополнительной информации проверьте это http://guides.rubyonrails.org/asset_pipeline.html

Или, если конвейер ресурсов не является вашей проблемой, проверьте эту трансляцию на электронную почту в формате HTML. http://railscasts.com/episodes/312-sending-html-email?view=asciicast

0 голосов
/ 11 января 2012

вы можете указать полный путь ваших активов, используя

config.action_controller.asset_host = "http://www.yourdomainFORassets.com"

в конфигурационном файле вашей среды

И вам лучше быть осторожным с URL-адресом изображений внутри CSS-файлов, я должен все переместить чтобы использовать существующий код, отметьте http://guides.rubyonrails.org/asset_pipeline.html специально с этой частью:

2.2.2 CSS и Sass

При использовании конвейера ресурсов пути к ресурсам должны быть переписаны, а sass-rails предоставляет помощники -url и -path (дефис в Sass, подчеркнут в Ruby) для следующих классов активов: изображение, шрифт, видео, аудио , JavaScript и таблица стилей.

image-url("rails.png") becomes url(/assets/rails.png)
image-path("rails.png") becomes "/assets/rails.png".

Также можно использовать более общую форму, но необходимо указать путь к активу и класс:

asset-url("rails.png", image) becomes url(/assets/rails.png)
asset-path("rails.png", image) becomes "/assets/rails.png"

http://guides.rubyonrails.org/asset_pipeline.html#in-production

Привет

0 голосов
/ 10 января 2012

Вы можете считать, что <link rel=stylesheet> не поддерживается мэрами, такими как Hotmail, Gmail и Yahoo: http://www.campaignmonitor.com/css/

Лучший вариант, который у вас есть, это использовать <styles> теги в вашем теле.или заголовок;или даже хуже, используя встроенные стили, которые поддерживаются большинством почтовых клиентов сегодня.

Почта Google, в частности, ищет STYLE в любом месте письма и (услужливо) удаляет его.И не надо использовать CSS LINK для таблицы стилей.Google Mail, Hotmail и другие почтовые программы игнорируют, изменяют или удаляют эти внешние ссылки на таблицу стилей.

http://www.reachcustomersonline.com/2011/12/21/09.27.00/

...