grav

Estructura de carpetas

Debido a que Grav es un CMS basado en archivos planos, lo que significa que no tiene base de datos, la estructura de carpetas de su sitio es muy importante. En el nivel superior de tu instalación de Grav, la estructura de carpetas se ve así:

/assets
/backup
/bin
/cache
/images
/logs
/system
/tmp
/vendor
/user

Así que profundicemos un poco más en cada una de estas carpetas de nivel superior y expliquemos para qué sirven:

/assets

La carpeta assets es utilizada por el nuevo sistema de gestión de activos dentro de Grav para almacenar archivos .css y .js procesados.

Esta carpeta no debe usarse para almacenar datos de usuario, ya que se eliminan todos los datos de forma rutinaria.

/backup

La carpeta backup es la ubicación predeterminada para las copias de seguridad de Grav.

/bin

La carpeta bin contiene la aplicación Grav CLI que se puede utilizar para realizar algunas tareas útiles desde la línea de comandos. Esta es una característica relativamente avanzada destinada principalmente a desarrolladores, por lo que dejaremos este tema a un lado para una discusión posterior.

/cache

La carpeta cache se utiliza para almacenar archivos temporales en caché que Grav genera automáticamente para mejorar el rendimiento. De forma predeterminada, Grav maneja el almacenamiento en caché automáticamente y selecciona la mejor opción disponible para su entorno de alojamiento para garantizar que su sitio se ejecute lo más rápido posible.

Si Grav decide que el sistema de archivos es el mejor método de almacenamiento en caché, los archivos en caché que genera se almacenarán aquí. El motor de plantillas Twig también utiliza esta ubicación para almacenar sus archivos de plantillas precompilados. Nuevamente, esto se hace para garantizar que Grav funcione a su velocidad óptima.

Esta carpeta no debe usarse para almacenar datos de usuario, ya que se eliminan todos los datos de forma rutinaria.

/images

Grav viene con una potente biblioteca de manipulación de imágenes fácil de usar. Esto significa que puedes cambiar fácilmente el tamaño de una imagen sobre la marcha desde tu contenido o incluso desde un complemento. Estas imágenes se almacenan en la carpeta imágenes para que puedan reutilizarse si se vuelve a solicitar la misma imagen con el mismo tamaño.

Esta carpeta actúa como un caché de imágenes y está destinada a archivos generados automáticamente. Los medios proporcionados por el usuario deben almacenarse en la carpeta usuario/pages/, usuario/themes/ o incluso en una carpeta personalizada user/images/.

Esta carpeta no debe usarse para almacenar datos de usuario, ya que se eliminan todos los datos de forma rutinaria.

/logs

Cuando Grav detecta un error, o si tiene activado el registro o la creación de perfiles adicionales, almacena los archivos de registro relevantes en la carpeta "logs".

/system

La carpeta system es donde se encuentran los archivos que hacen que Grav realmente funcione. No debes editar nada en esta carpeta porque una actualización de Grav podría sobrescribir tus cambios. Si necesita cambiar algo relacionado con el funcionamiento de Grav, puede utilizar complementos como se explica en capítulos posteriores.

/tmp

Grav y los complementos utilizan la carpeta tmp para almacenar archivos temporales.

Esta carpeta no debe usarse para almacenar datos de usuario, ya que se eliminan todos los datos de forma rutinaria.

/vendor

La carpeta vendor contiene bibliotecas importantes en las que se basa Grav. Esta carpeta es similar a la carpeta system en el sentido de que su contenido no debe editarse a menos que esté absolutamente seguro de lo que está haciendo.

Si instaló Grav desde GitHub, la carpeta vendor no se habrá instalado con él. Para crear y completar la carpeta del proveedor, deberá ejecutar bin/grav install o composer install desde la raíz de su instancia de Grav. Se pueden encontrar más detalles en el artículo sobre instalación.

/user

Esta es la carpeta más importante para la mayoría de los usuarios de Grav. Esta carpeta es donde pasarás tu tiempo creando contenido, usando complementos y editando tus temas. Profundicemos un poco más en esta carpeta:

/cuentas de usuario
/usuario/planos
/usuario/config
/datos del usuario
/usuario/imágenes
/usuario/idiomas
/usuario/páginas
/usuario/complementos
/usuario/temas

/user/accounts

La carpeta "accounts" es donde definirá las cuentas de usuario si se requieren restricciones de acceso a ciertas partes de su sitio.

/user/blueprints

La carpeta blueprints contiene sus planos personalizados para el sitio.

/user/config

Los archivos en el directorio de configuración se utilizan para configurar el sitio web y se analizaron en el capítulo anterior.

/user/data

Los complementos pueden utilizar la carpeta data para almacenar datos a los que podrá hacer referencia más adelante. Un buen ejemplo de un complemento que utiliza esta carpeta es el complemento Formularios que puede tomar un formulario web y almacenar los datos enviados en un archivo de texto en esta carpeta. También puedes almacenar otras cosas, como cargas de usuarios o cualquier cosa que realmente desees.

De forma predeterminada, no se puede acceder a esta carpeta a través de un navegador.

/user/images

La carpeta imágenes se puede utilizar para almacenar sus imágenes. Se puede acceder mediante image://.

/user/languages

La carpeta languages contiene las distintas traducciones a otros idiomas.

/user/pages

Este es el corazón de Grav. La carpeta pages es donde creas y editas tu contenido. Profundizaremos mucho más en el artículo sobre páginas.

/user/plugins

Un plugin puede ampliar el núcleo rápido de Grav con características particulares que pueda necesitar para su sitio web. Los plugins se pueden descargar desde GetGrav.org/downloads/plugins, o puedes desarrollar el tuyo propio.

/user/themes

Un tema convierte su contenido en un verdadero sitio web. Convierte el contenido que ha creado en HTML que un navegador comprende y muestra a su audiencia. Hay un tema base que se proporciona con Grav, pero también puedes descargar otros desde GetGrav.org/downloads/themes o incluso crear el tuyo propio.