2012-01-01 25 views
5

Buduję aplikację, która powinna umożliwiać użytkownikowi przesyłanie motywów w celu wyświetlania danych w niestandardowy sposób. Każda kompozycja powinna zawierać wszystkie niezbędne zasoby, takie jak szablon html (przy użyciu Liquid), pliki css, javascripts i obrazy. Wynik powinien być bardzo podobny do tego, co pozwala Shopify zrobić swoim klientom.Zdefiniowane przez użytkownika motywy w aplikacji szyny: jak przechowywać zasoby

Staram się znaleźć najlepszy sposób, aby użytkownicy mogli przesyłać swoje motywy i aby aplikacja mogła je odzyskać. Konkretnie, jakie są najlepsze praktyki:

  • Aby oddać je odwiedzającym. Podczas serwowania plików html/liquid wydaje się być dość łatwe przy użyciu niestandardowego sklepu, jestem zdezorientowany, w jaki sposób odwołać i służyć 1) obrazy wymagane przez tematy, 2) pliki css wymagane przez tematy, 3) obrazy wymagane przez css złożyć
  • aby consequentely przechowywać różne rodzaje aktywów (np bazie vs dodany plik i struktury folderów dla przesłanych plików)
  • możliwość użytkownikom na edycję przesłanych szablonów przez interfejs WWW

Thanks in postęp.

Odpowiedz

3

Potok zasobów jest przeznaczony głównie do obsługi środków trwałych, które są wstępnie kompilowane w czasie wdrażania. Jest w tym sporo sporego nakładu pracy i nie sądzę, że nadaje się do wyświetlania dynamicznie edytowalnych treści.

Aby zaatakować ten problem, utworzę listę macierzy wszystkich typów zasobów w systemie (użytkownik i statyczny) i jakie są opcje dla każdego z nich.

Obok każdego z nich zapisuj możliwe opcje przechowywania, np. system plików raw, potok systemu plików, baza danych. Następnie opracuj argumenty za i przeciw dla każdego podejścia i przybliżoną złożoność każdego z nich.

Nie sądzę, aby korzystanie z potoku w tym celu było najlepszą praktyką, chyba że naprawdę zależy ci na wydajności na pierwszym planie; byłoby dużo pracy, aby to osiągnąć.

Połączenie bazy danych/systemu plików byłoby prawdopodobnie optymalne.

+0

Witaj Richard, dziękuję za odpowiedź, ale czekam na prawdziwe przykłady, np. fragmenty lub przykładowe aplikacje, aby zrozumieć, jakie potencjalne podejścia można zastosować. Czy masz jakiś przykład, który mógłbyś podać? – Topo

+0

Niestety, nie mam żadnych przykładów. –

Powiązane problemy