Как заменить шаблон с помощью Deface

Я новичок в рельсах, и я установил стандартное решение для электронной коммерции. Теперь я хочу настроить шаблоны и стили по умолчанию. Согласно документации spree [1], лучший способ сделать это - использовать Deface. К сожалению, я не могу выяснить расположение существующих видов / макетов.

Например, в то время как документ предлагает:

Например, чтобы переопределить основной макет, создайте файл YOUR_SITE_OR_EXTENSION/app/views/spree/layouts/spree_application.html.erb

мой app/views папка не содержит папку с именем spree

Кто-нибудь может подсказать, как изменить шаблоны просмотра?

Спасибо.

[1] https://guides.spreecommerce.com/developer/view.html

2 ответа

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

mkdir app/views/spree
mkdir app/views/spree/layouts
touch app/views/spree/layouts/application.html.erb

Затем скопируйте содержимое здесь: https://github.com/spree/spree/blob/master/frontend/app/views/spree/layouts/spree_application.html.erb в файл, который вы только что создали.

Перезапустив веб-сервер, вы сможете внести изменения в локальный файл application.html.erb и просмотреть их локально.

В любое время, когда вы захотите полностью переопределить шаблон, вы можете найти шаблон, который нужно переопределить, на Github: https://github.com/spree/spree и воссоздать необходимые файлы / каталоги. Spree будет искать шаблоны на локальном хосте перед гемом, поэтому, пока вы переопределяете нужный шаблон в правильном каталоге, вы можете настроить любое представление, которое вам нравится.

В качестве альтернативы вы можете попробовать запустить команду rails generate spree:frontend:copy_views, чтобы извлечь все нужные вам виды из драгоценных камней, и все, что отсутствует, можно добавить вручную, в строгом соответствии с иерархией папок драгоценных камней. Например, в gems есть parsl в следующем spree_backend/views/spree/admin/users/_lifetime_stats.html.erb. Чтобы ввести нужный код, я должен создать папку по следующему пути - имя проекта /app/views/spree/admin/users/_lifetime_stats.html.therb и все изменения, которые я здесь внесу, попадут в код основного вида. Это альтернатива Deface::override

Другие вопросы по тегам