2016-09-13 3 views
0

Я хочу сделать приложение для своих рельсов мобильным. Есть несколько способов, но я использую тот, где он проверяет пользовательский агент и передает параметры «is_mobile» в URL-адресе и просматривает представления из другой папки - у меня нет другого типа mime для мобильных телефонов, я Я просто использую другую папку просмотра, и я в порядке с этим.Отдельная папка активов для мобильных устройств?

В моем ApplicationController я звоню prepend_view_path, если запрос поступает из мобильного устройства.

Интересно, что делать с активами: изображения, js, css? Должен ли я также создать новую папку для мобильных устройств для активов - «my_assets_for_mobile» и добавить ее к пути? Что-то вроде: prepend_assets_path (....), если mobile_request? Или что?

ответ

0

Для достижения этой цели вы можете использовать Webpack, это очень хороший инструмент для управления активами. Вы также можете создавать свойства страницы для загрузки на страницу. Вы можете решить на лету, какие активы нужно загрузить для страницы, исходя из ваших требований, таких как мобильные активы или другие.

+0

мой вопрос: да, нет, вот и все, вы его усложнили. – Johshi

2

Да, вы можете. Первый шаг - это знать, запрашивает ли устройство мобильную версию.

Второго шаг заключается в это: (в вашем application.html.erb макете)

<% if mobile? %> 
    <%= stylesheet_link_tag 'application-mobile', media: 'all' %> 
<% else %> 
    <%= stylesheet_link_tag 'application', media: 'all' %> 
<% end %> 

Тогда вы просто должны сделать application-mobile.css проявляться в вашей папке активов (копия и изменить application.css

В application-mobile.css вы можете определите, какие активы загружаются для мобильных устройств, какие из них делятся с application.css и другими подобными вещами

+0

и что, если их десятки? изображения, шрифты и т. д. – Johshi

+0

Легко. Поместите их все в папку «mobile». Сделайте 'require_tree 'mobile'' в' application-mobile.css' – Ruslan

+0

, почему бы не использовать «assets_mobile» вместо этого? – Johshi

Смежные вопросы