La estructura de archivos de un sitio web funciona de forma similar a la de tu disco duro. Sin embargo, ¿sabes cómo opera en realidad? Lo conocerás a continuación.
Estructura de archivos
Toda computadora, e incluso los teléfonos, emplean la misma estructura de archivos. Esto es un árbol de carpetas dónde se almacena toda la información del ordenador. En ese sentido, tienes carpetas dedicadas a diferentes objetivos y todo vive dentro de estas carpetas.
Estructura de archivos según el sistema operativo
💡 En Windows, la carpeta raíz es el disco duro (comúnmente llamado “C:”).
¿Por qué una “C:”? Pues, alguien le asignó la “A:” y la “B:” a los disquetes o “Floppy disc” de antes. Así que los discos duros empiezan a contar a partir de la “C:”.
💡 En el caso de Linux, la carpeta raíz es el “home”. Desde ahí parte todo, incluyendo tu carpeta de usuario donde guardas todo lo demás.
💡 el caso de una web no es muy diferente. La carpeta raíz generalmente es tu dominio web (ej.: “www.platzi.com”). Y desde ahí parten todas las carpetas y archivos que componen tu sitio web.
💡 Ojo
Windows tiene una particularidad en su estructura de archivos: Windows no presta atención a las mayúsculas en los nombres de carpetas o archivos. Pero todos los demás sí. La mayoría de los servidores web son Linux. Y en Linux, la carpeta “Documentos/” es diferente a la carpeta “documentos/”.
Presta mucha atención al uso de mayúsculas en los nombres de archivos para tu sitio web. Y, preferiblemente, escribe todos los nombres en minúscula. En el caso de nombres compuestos, puedes utilizar “_” para separar las palabras (de_este_modo.txt).
Estructura de archivos relativa
Para escribir una ruta absoluta, tienes que empezar por la carpeta raíz y escribir la dirección carpeta por carpeta, hasta llegar al archivo que estás buscando. Por ejemplo:
/home/Freddier/docs/cursito/codigo.html. Sin embargo, recuerda que naturalmente puedes navegar entre carpetas (en especial si lo haces desde la terminal de comandos, o desde el explorador de archivos).
Cuando navegas hacia una carpeta, esta se convierte en tu posición relativa. Y en programación, puedes aprovechar tu posición relativa para referir a todos los archivos que necesites dentro de esa carpeta, o incluso un nivel afuera. Por ejemplo, si estás dentro de la carpeta “programar/”, entonces puedes hacer referencia a un archivo dentro de ella simplemente por si nombre, o por la dirección que sigue luego.
Dentro de “programar/” puedes invocar archivos que viven dentro de ella tan fácil como escribir como “imágenes/foto.jpg” o “juego.html”
💡 Esto es importante porque tu sitio web tiene una estructura de carpetas como esta, dónde se guardan todos los archivos que vas a usar.
Sin embargo, para que el usuario pueda observarlos, antes tienes que ejecutarlos desde el HTML. Y eso significa que tendrás que escribir estas rutas de archivos con mucha frecuencia dentro de tu código.
Estructura de archivos de un sitio web
Todo empieza por la carpeta dónde se encuentra el proyecto. Allí es dónde suelen estar los archivos HTML del sitio web.
Sin embargo, archivos complementarios como imágenes, código JavaScript o las hojas de estilos CSS suelen vivir en carpetas diferentes dentro de la carpeta del proyecto, cada una dedicada a un tipo de archivo.
💡 Aunque puedes escribir el código directamente en el archivo HTML, la mejor práctica es escribirlo en archivos separados.
Recuerda que en muchas ocasiones los archivos pueden volverse muy extensos y complejos. Por esa razón, lo ideal es tener al menos un archivo para el HTML, otro para el CSS y otro para el código JavaScript. Esto también te beneficia en tu editor de código porque si trabajas en un archivo con un solo lenguaje, le das la oportunidad al editor de código de brindarte todo el soporte que ya tiene para ese lenguaje.
💡 Puedes invocar el código en otros archivos a través de etiquetas HTML con sus respectivos atributos.
Para ejecutar un archivo CSS se usa:
<linkhref="css/estilos.css"rel="stylesheet">
Y para ejecutar un archivo JavaScript, colocas:
<scriptsrc="js/codigo.js"></script>
💡 Es importante que coloques la extensión correcta para los archivos. Si los escribes mal, el navegador no podrá cargarlos para construir tu sitio web.
Si estás en Windows, recuerda activar la opción para ver las extensiones de los archivos desde el explorador de archivos → vista → mostrar u ocultar → Extensiones de nombre de archivo.
Conocer y dominar la estructura de archivos es una habilidad fundamental para un programador.
De hecho, existe otra habilidad que es de mucha ayuda para programadores, que consiste en dominar la terminal y línea de comandos. Esto es relevante para dominar Git o para programar en backend. Si te interesa, puedes profundizar más en el curso de terminal y línea de comandos de Platzi.
Pero no dejes de completar este curso. Así que empieza por separar el código JavaScript del HTML en nuestro juego de piedra, papel o tijera, y conéctalos con el atributo de la etiqueta <script> que conociste más arriba (y no olvides revisar la indentación luego de copiar y pegar).
Válida que tu juego aún funciona, puedes usar los archivos de la clase como punto de comparación si lo necesitas. Y cuando termines continúa a la siguiente clase, donde aprenderemos sobre qué es el DOM.
Contribución creada por Jhonkar Sufia (Platzi Contributor).
Los proyectos en programación no suelen ser programados en una sola tecnología, es decir, no solamente veras algo hecho 100% en HTML o 100% hecho en JavaScript, rara vez, por lo general se usa una familia de tecnologías en conjunto para crear un producto, en programación seria algo algo como:
.
HTML: Con lo que se hace la estructura
CSS: Con lo que le damos estilo y/o moldeamos la apariencia de la anterior estructura
JS: Con lo que le damos vida a lo anterior y hacemos funcionar el proyecto con multiples funcionalidades.
.
Un ejemplo simple es con la siguiente analogía y es verlo como si fuera un edificio en construcción:
HTML: vendría siendo la estructura del edificio, columnas, paredes, pisos, baños
CSS: Vendría siendo los acabados, pintura, enchapes, espejo, ventanas, puertas, etc.
JS: Los servicios públicos como el servicio de agua, luz, gas, TV, Teléfono, etc.
.
Ahora si quieres algo más grande y complejo es cuando se unen diversas tecnologías y generan una familia más robusta y suelen llamarse Stack de tecnología, que incluye tecnologías de bases de datos, sistemas operativos, lenguajes de programación, etc.
Un ejemplo el stack** LAMP**: Linux, Apache, MySQL y PHP
Gracias por el panorama. Genial !!
ok sensei estoy atento a tus aportes
Tip: En la opción de “file” de la barra superior de visual studio code, hay una opcion q dice auto save, es muy util para no estar guardando a cada rato tu archivo sea html, js o el q sea
Exacto, muy útil
El mejor feature, gracias 🥺
💡 Tip: haz click derecho en el código y selecciona "Formatear documento" para que VS Code haga el indentando automáticamente y quede elegible el código.
Que es "indentando"?
La indentacion hace referencia a los bloques vacios o separacion del codigo.
Mejoremos el flujo de trabajo
🤔 ¿Te ha sucedido en Visual Studio Code que los cambios no se efectúan en HTML, CSS o JS porque no has guardado el archivo? Hoy te traigo una solución sencilla pero efectiva.
Para ello, únicamente necesitaremos cambiar una configuración e instalar una extensión.
VS Code tiene una opción llamada Auto Save. Con ella, cada vez que realicemos un cambio será guardado automáticamente, por más pequeño que sea. Para habilitarlo, únicamente debemos ir a File y darle click a Auto Save. El check ✔️ nos confirmará que está habilitado.
Aunque el archivo se guarde, debemos recargar la página para ver los cambios. Esto podrá parecer poco, pero dependiendo del contexto es muy cansado. Para ello, tenemos la extensión Live Server.
Pero, ¿Cómo uso Live Server? Realmente es muy sencillo. Simplemente le damos click derecho a cualquier parte del código HTML, y seleccionamos Open With Live Server.
Para que los cambios se efectúen en el Live Server debemos guardar, pero gracias al primer paso con el Auto Save, esto se hace automáticamente. De esta forma, veremos los cambios efectuados en el proceso de desarrollo en tiempo real.
¿Te ha parecido útil el tutorial? Si es así, apóyame con un like para saber que te ha ayudado.
¡Nunca paren de aprender! 💚
Buenardo! Gracias
¡Con mucho gusto, Santiago!
En programación, mantener los nombres de carpetas y archivos 100% en minúsculas es super importante.
Cuando separé el js del html y ejecuté el código en navegador no me reconoció los emojis así que investigué y cambié
Me funciono perfecto gracias. Igual sabes por que sucede eso?.
¿Cómo investigaste? ósea, cuál sería la manera de poner en Google tal error... y también, ¿¿por qué sucedió??
nooooo, no me lo van a crer , mi codigo se rompio y no queria cargar en el navegador porque en vez de escribir src escribi scr:) que bonitas 3 horas
adelante, no pasa nada , me hice un tecito y lei mil veces nuevamente todo hasta que lo encontre ese erroe, el te mas rico de mi vida.... mentira , abracemosnos jajajjajaja
A mi también me pasó :D
Efectivamente como cuenta Freddy, antaño el arranque de las computadoras era mediante disquetes, por eso tenían asignadas las letras A y B, y cuando aparecieron las unidades HDD solo quedaba asignarles la letra C. Actualmente se puede asignar otras letras, pero por defecto y tradición en Windows quedó C. Me siento dinosaurio cuando cuento esto pero todavía pude usar esos disquetes :3
genial, gracias por compartirlo con la comunidad.
Exacto, solo que tener solo una unidad C: no significa tener un solo disco duro (unidad física) ni viceversa. Esas letras se asignan a unidades lógicas. Un disco duro puede tener varias unidades lógicas (C:, D:, E:, etc) y una unidad lógica puede usarse para un arreglo de dos o más discos físicos.
Listo, pasé todo al Javascript jsjs :)
PD: Por fin le gane al CPU :v
JAJAJAJAJA esa cpu es un duro contricante
XD
Soy el único viejo que se acuerda de esto?
c:\>format a:/s
jaaaaaaaaa :D
el mejor era format c: y el usuario le daba SI a la pregunta de confirmación..... jajajaja ¿cuantas veces les pasó??
hola, los más seguro es que no importe mucho este mensaje pero quisiera preguntar algo.. es normal sentir como una felicidad y emoción al estudiar esto? la verdad hace 3 días descubrí que me gusta esto y a un mes estoy de entrar al instituto, soy algo distraído pero me emociona mucho seguir aprendiendo esto, de verdad gracias por motivarme, a todos, que son tan solidarios y amigables, sobre todo a ti Freddy Vega, de verdad gracias por enseñarnos este hermoso lenguaje de la programación.
Hola Benjamin. Esa emoción nunca la pierdes cuando empiezas en el mundo de la programación, siempre hay caminos nuevos que aprender mucho mas divertidos con todo y sus retos. No te desanimes por que si sientes esta felicidad vas por buen camino. 🤗😄
Así quedó mi código html:
<!DOCTYPE html><html lang="es"><head><meta charset="utf-8"/><title>Piedra, papel o tijera</title><script src="codigo.js"></script></head><body><h2>Piedra, papel o tijera</h2></body></html>
triunfos++ es una forma de sumarle 1 a la variable, es una forma mas corta de representar
triunfos = triunfos +1;//es lo mismo que triunfos++
buenas gente como andan?? consulta, lo que no entendí es porque al script lo puso en el head.. si en curso anterior explicaba que el script iba antes del cierre del body.. (tengo todos los ejercicios del curso anterior con el script antes del cierre del body) pero no entendí el porque de la modificación
Este tema es un poquillo más denso de lo que parece. Por una parte HTML lee su contenido de arriba hacia abajo, aunque con trucos de manipulación del DOM lo podemos solucionar. Pero por otra parte el head es precisamente para encapsular toda la "meta información" y el body para la parte visual. Y por otra parte tenemos el temita de las buenas prácticas que es un poco más avanzado.
En resumen: durante las clases de los profes JuanDC y Diego De Granda lo vamos a estudiar un poco más a detalle. :D
Les recomendaría mucho que cuando incluyan su archivo JS este lo apunten a la raíz, algo como:
<script src="/js/codigo.js""></script>
de esta manera si copian su código o si quieren hacer otra ruta podrán acceder a su archivo sin confundirse a ustedes mismxs (me ha pasado🤭)
Les dejo un buen recurso que habla de esto
Cuidado, eso buscará en la raíz del disco (en Windows buscaría en C:\ (creo?) y en Mac y Linux buscaría en /). Para que busque en la carpeta del proyecto habría que poner
<script src="./js/codigo.js"></script>
Ese ./ nos indica la carpeta actual del archivo
Creo que de hecho , buscará en la raíz del directorio en si (donde se encuentre index.html en este caso)pero totalmente de acuerdo que ./ es aún mejor práctica, buena observación.
En la programación lo mejor es mantener los nombres de carpetas y archivos en minúscula.
La raíz del mundo de internet es el dominio.
Hay rutas absolutas y rutas relativas. Si la ruta esta al mismo nivel de la carpeta donde estoy, puedo colocar: nombre_de_la_carpeta/nombre_del_archivo.jpg
A la etiqueta script le doy un parámetro src para que vaya a la carpeta a buscar el archivo que le estoy indicando.
Click derecho "Format document" para ordenar el código
Esto me va a ser tan útil, gracias.
Buen tip.
Y pensar que estudiaba en la ucab y pagaba casi 600$ por semestre y jamás me enseñaron esto. Definitivamente Platzi llegó para cambiar la forma en la que aprendemos
Hola a todos y muchas gracias por sus enseñanzas. al profesor Fredy gracias y un reconocimiento por su capacidad de hacerse entender.
buenos dias
una vez que separo js ya no me anda la pagina, por que pasara?
les muestro como quedaron mis codigos
lo intente variar como vi en los aportes, pero sige sin funcionar
<!DOCTYPE html><html><head><meta charset ="utf=8"><title>Piedra, papel o tijeras</title><script src="./js/codigos.js"></script></head><body><h2>Piedra, papel o tijeras</h2></body></html>
functionaleatorio(min, max){returnMath.floor(Math.random()*(max - min +1)+ min)}functionelección(jugada){let resultado =""if(jugada ==1){ resultado ="🪨 piedra "}elseif(jugada ==2){ resultado ="📰 papel "}elseif(jugada ==3){ resultado ="✂️ tijera "}else{ resultado ="MAL ELEGIDO"}return resultado
}//1 es piedra, 2 es papel, 3 es tijeralet jugador =0let pc =0let triunfos =0let perdidas =0let empates =0while(triunfos <3&& perdidas <3){ pc =aleatorio(1,3) jugador =prompt("BIENVENIDO 🔫 Escoje tu arma: oprime 1 para piedra, 2 para papel, 3 para tijera")//alert("Elegiste " + jugador)alert("PC elige: "+elección(pc))alert("Tú elijes: "+elección(jugador))//combateif(pc == jugador){ empates ++alert("EMPATE")}elseif((jugador ==1&& pc ==3)||(jugador ==2&& pc ==1)||(jugador ==3&& pc ==2)){ triunfos ++alert("GANASTE 👑")}else{ perdidas ++alert("PERDEDOR intenta de nuevo")}}alert("Ganaste "+ triunfos +" veces. Perdiste "+ perdidas +" veces. Empataste "+ empates +" veces. ")
Hola, Milagros. 👋
Asegúrate que tu archivo de JavaScript está dentro de la carpeta de nombre js y que se llama codigos.js. Si no, por eso el HTML no encontraría el archivo.
Si puedes, compártenos una captura de pantalla del error que te muestra en consola.
sisi, esta en la carpeta js y el archivo es codigos.js
y la pagina del juego directamente ni me recarga
A mi en el parametro piedrapeltijera.html entre script me funcionó de la siguiente manera <script src="codigo.js"></script>
no como Fredy lo relaciona, aún no se por qué. Saludos.