¿Cuál es la estructura de carpetas óptima para un directorio web?

9

He estado haciendo desarrollo web durante años, y siempre he hecho una estructura web similar a esta:

public_html/login.php
public_html/css/login.css
public_html/js/login.js
public_html/img/logo.png

He visto a otras personas usar:

styles/login.css
images/logo.png

Y recientemente descubrí que a mi compañero de trabajo le gusta:

public_html/a/login.js   - application
public_html/s/login.css  - styles
public_html/i/logo.png   - images
public_html/p/photo1.jpg - photos
public_html/f/menu.swf   - flash

Además de guardar un byte o dos, ¿hay alguna ventaja o desventaja en alguna de estas opciones? ¿Existe una mejor práctica para este concepto?

San Juan Johnson
fuente
Por solicitud, carpetas adicionales: 't' para plantillas y 'x' para xml
St. John Johnson
algo relacionado: stackoverflow.com/questions/2114935/…
cregox

Respuestas:

6

Me quedaría con su sistema actual, aunque puedo ser parcial ya que uso casi los mismos nombres.

Me parece que mantener un nombre de carpeta de tres letras es lo suficientemente detallado como para tener significado, pero lo suficientemente conciso como para mantener ordenadas mis URL .

Recortar cada carpeta a una sola letra es excesivo, y como señala mc10, está ampliamente abierto a interpretación. Por ejemplo, nunca elegiría 'a' para los archivos Javascript: habría elegido 'b' para "comportamiento". No creo que ninguno de los dos sea más correcto, solo señala cuán ambiguo es el esquema de nombres.

Si bien usar "estilos" e "imágenes" como nombres de carpeta está perfectamente bien, creo que tiene mucho más sentido usar un nombre más corto. Piense cuántas veces se hará referencia a esa carpeta, en cada archivo, en cada URL y solicitud, y los bytes comenzarán a sumarse. De acuerdo, no creo que vea ningún ahorro de ancho de banda en el mundo real al usar nombres de carpeta más cortos, pero tomaré cada bit (y byte) que pueda obtener.

Por lo general, me quedo con estas dos carpetas:

  • js - archivos Javascript
  • img - Archivos de imagen
  • css - archivos CSS
  • lib - Scripts del lado del servidor que no producen resultados. Bibliotecas, clases, etc.
  • doc : archivos binarios, como documentos de Office y PDF, que no forman parte de la navegación normal de la página
Jacob Hume
fuente
2

Las carpetas CSS y JS son buenas para un sitio individual que puede estar codificado estáticamente (también conocido como HTML), pero no es práctico para un sitio más grande que usa un CMS.

Los CMS usan carpetas de "estilos" e "imágenes" en su propia estructura de carpetas, solo que generalmente están enterrados dentro de subdirectorios. Es una buena forma de diseñar contenido, y es favorecida por muchos CMS.

Tener nombres de carpetas de una letra es confuso. A primera vista, me habría confundido con la diferencia entre fotos ( p) e imágenes ( i). Usar apara "aplicación" también parece críptico.

kevinji
fuente
1

El uso de carpetas para css y js en lugar de archivos individuales depende completamente del alcance de su proyecto.

Si tiene, o necesitará potencialmente más de una secuencia de comandos u hoja de estilo, organizarlos en carpetas facilitará el mantenimiento y la administración del sitio.

Si decide usar carpetas nuevamente, darles estos nombres largos o cortos es una preferencia personal.

Aunque los nombres de una letra ahorran bytes y pueden verse un poco más limpios, en mi experiencia, si tiene más de un puñado de personas trabajando en el sitio, esto puede ser confuso.

ajcw
fuente
1

También puedes hacer este método para.

1er método:

  • / i / common /
  • / i / layout /
  • / i / lib /
  • / i / misc / docs / pdf /
  • / i / misc / docs / csv /
  • / i / misc / docs / txt /

Nota: Es mejor si cada archivo se renombrará en su resumen md5.

Ejemplos:

  • /i/common/9df48e2cf2d25740e4ba54e8cd73b3a3.png,
  • /i/layout/2b33962041cb835c227bba27424a28af.css,
  • /i/lib/a8a2a48ddaa95527c6d3db763e2b7809.js,
  • /i/misc/docs/pdf/68aafcfe9aa1ab7d83a6ce8df302155e.pdf

2do método:

  • / activos / común /
  • / assets / templates / template_name /
  • / activos / incluye / js /
  • / assets / misc / pdf /
  • / assets / misc / csv /
  • / assets / misc / txt /

Nota: No es necesario cambiar el nombre de los archivos a cadenas md5, pero todos los espacios deben reemplazarse por guiones / -

Ejemplos

  • /assets/common/uploads/2014/12/company-site-has-been-launched.jpg

3er método:

  • / sitio / archivos /
  • /plano del sitio/
  • / site / scripts /
  • / site / misc / docs / pdf /
  • / site / misc / docs / csv /
  • / site / misc / docs / txt /

OBSERVACIONES: En el subdirectorio de carpetas "común" public_html, puede crear un nuevo subdirectorio después de él y nombrarlo "uploads / 2014/12 / para sus archivos cargados de la misma manera que Wordpress organiza sus cargas.

js92
fuente
1
Me gustan sus ejemplos de estructuras de carpetas, sin embargo, no se recomienda nombrar sus archivos usando sus hash md5, y definitivamente no es "el mejor". Cambiar un archivo de imagen alterará su md5, por lo tanto, requiere que usted haga las correcciones a todo el sitio. En cambio, es mucho más seguro darles un nombre más memorable.
Richard