Я запускаю Ruby on Rails 4.1 в режиме производства, и я отправляю успешную электронную почту из своего веб-приложения на свой счет GMail. Это письмо содержит изображение (логотип приложения), но это изображение не отображается в теле сообщения.Странная ошибка при рендеринге изображения по электронной почте
Logging запрос изображения на стороне сервера я получаю следующее сообщение об ошибке:
ActionController::RoutingError (No route matches [GET] "/assets/my_app_logo.png")
инспектирующих исходный код по электронной почте я получаю:
<img class="CToWUd" alt="MyAppName" src="https://ci4.googleusercontent.com/proxy/J8xdV03MSjJGOJh6F8T5ntqhjC2YJAiShAWJshvcOLn9THWAC5hKwp4DCLc6csuoojWlaKzPXjt-6zBAkZZvzpYMH=s0-d-e1-ft#http://www.my_app_name.com/assets/my_app_logo.png">
В чем проблема? Как я могу это решить?
В моем частичном шаблоне у меня есть:
<%= link_to(image_tag("#{root_url}assets/my_app_logo.png", :alt => MyAppName), root_url.to_s) %>
Update после @ kasperite замечания
Can you post what's in application.css? also is it application.css under assets/stylesheets?
Да, мой application.css.scss
файл assets/stylesheets
:
// ...
.my_app_logo { background-image: image-url("my_app_logo.png"); display: inline-block; }
// ...
Однако application.css.scss
является не используется для визуализации электронной почты. Я использую код, как указано в приведенном выше частичном шаблоне.
У вас есть config.serve_static_assets, установленный в false в производственной среде? –
Да, в рабочей среде есть 'config.serve_static_assets = false'. – user502052
- это папка «assets» под общим или приложением? Я думал, что вы не должны получать доступ к «приложению/активам» на производстве? – kasperite