2012-01-01 10 views
5

Estoy creando una aplicación que debería permitir al usuario cargar sus temas para mostrar los datos de forma personalizada. Cada tema debe incluir todos los recursos necesarios, como la plantilla html (utilizando Liquid), archivos css, javascripts e imágenes. El resultado debería ser muy similar a lo que Shopify permite hacer a sus clientes.Temas definidos por el usuario en una aplicación de rieles: cómo almacenar los activos

Tengo dificultades para encontrar la mejor manera para que los usuarios envíen sus temas y para que la aplicación los devuelva. Específicamente, cuáles son las mejores prácticas:

  • Para devolverlas a los visitantes. Aunque servir los archivos html/liquid parece ser lo suficientemente fácil usando una tienda personalizada, estoy confundido sobre cómo hacer referencia y servir 1) imágenes requeridas por los temas, 2) archivos css requeridos por los temas, 3) imágenes requeridas por el css presentar
  • para almacenar consequentely los diferentes tipos de activos (por ejemplo, la base de datos vs archivo subido y la estructura de carpetas para los archivos cargados)
  • posibilidad de que los usuarios editar las plantillas cargados a través de una interfaz web

Gracias de avanzar.

Respuesta

3

La cartera de activos está diseñada principalmente para servir activos fijos que se compilan previamente en el momento de la implementación. Hay bastante sobrecarga al hacer esto, y no creo que sea adecuado para publicar contenido editable dinámicamente.

Para atacar este problema haría una lista de la matriz de todos los tipos de activos en el sistema (usuario y estático) y cuáles son las opciones para cada uno.

Al lado de cada escribir posibles opciones de almacenamiento, p. Ej. Sistema de archivos en bruto, sistema de archivos, base de datos. Luego resuelva los pros y los contras de cada enfoque, y la complejidad aproximada de cada uno.

No creo que usar la tubería para esto sería una mejor práctica a menos que realmente esté realmente preocupado por el rendimiento de la interfaz; sería mucho trabajo ponerlo en marcha.

Una mezcla de base de datos/sistema de archivos sería probablemente óptima.

+0

Hola Richard, gracias por tu respuesta, pero estoy buscando ejemplos reales, p. fragmentos o aplicaciones de muestra, para comprender cuáles son los posibles enfoques que se pueden usar. ¿Tiene algún ejemplo que pueda proporcionar? – Topo

+0

Lo siento, no tengo ningún ejemplo. –

Cuestiones relacionadas