Пользовательские темы в приложении rails: как хранить ресурсы - PullRequest
5 голосов
/ 01 января 2012

Я создаю приложение, которое должно позволять пользователю загружать свои темы для отображения данных в произвольном порядке.Каждая тема должна включать в себя все необходимые ресурсы, такие как HTML-шаблон (с использованием Liquid), CSS-файлы, JavaScript и изображения.Результат должен быть очень похож на то, что Shopify позволяет делать своим клиентам.

Я изо всех сил пытаюсь найти лучший способ для пользователей представить свои темы и для приложения, чтобы обслуживать их обратно.В частности, каковы лучшие практики:

  • Чтобы предоставить их обратно посетителям.В то время как обслуживание файлов html / liquid кажется довольно простым с помощью пользовательского хранилища, я не понимаю, как ссылаться и обслуживать 1) изображения, необходимые для тем, 2) файлы CSS, необходимые для тем, 3) изображения, требуемые для CSSfile
  • Для последовательного хранения различных типов активов (например, база данных и структура загруженных файлов и папок для загруженных файлов)
  • Возможность для пользователей редактировать загруженные шаблоны через веб-интерфейс

Заранее спасибо.

1 Ответ

3 голосов
/ 02 января 2012

Конвейер активов предназначен главным образом для обслуживания основных средств, которые предварительно компилируются во время развертывания.Это требует много усилий, и я не думаю, что это подходит для динамически редактируемого контента.

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

Рядом с каждой записью возможное хранилищепараметры, например, файловая система raw, конвейер файловой системы, база данных.Затем определите достоинства и недостатки каждого подхода и приблизительную сложность каждого.

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

Сочетание базы данных и файловой системы, вероятно, будет оптимальным.

...