Есть ли что-то вроде stylesheet_url в Rails 3.1?

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

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

Кстати, это для Rails 3.1.


person dabit    schedule 10.01.2012    source источник


Ответы (3)


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

person naren    schedule 10.01.2012

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

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

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

http://www.reachcustomersonline.com/2011/12/21/09.27. 00/

person Mario Zaizar    schedule 10.01.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

С уважением

person JoseLuis Torres    schedule 11.01.2012