Tutorial para instalar y usar Laravel Assets

 

Tutorial para instalar y usar Laravel Assets

Te guiaré paso a paso para instalar y usar assets (recursos estáticos como CSS, JavaScript, imágenes) en Laravel.

1. Estructura de directorios de assets en Laravel

Laravel organiza los assets en la carpeta public/:

text
public/
├── css/
├── js/
├── images/
└── index.php

2. Métodos para incluir assets

Método 1: Usando la función asset() (Recomendado)

php
<!-- En tus vistas Blade -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<script src="{{ asset('js/app.js') }}"></script>
<img src="{{ asset('images/logo.png') }}" alt="Logo">

Método 2: Usando URL absoluta

php
<link href="/css/app.css" rel="stylesheet">

Método 3: Usando Mix (para assets compilados)

php
<link href="{{ mix('css/app.css') }}" rel="stylesheet">

3. Configuración inicial

Paso 1: Crear la estructura de carpetas

bash
# Crear directorios para assets
mkdir -p public/css public/js public/images public/fonts

Paso 2: Instalar dependencias frontend (opcional)

bash
# Instalar Node.js y npm primero si no los tienes

# Inicializar package.json
npm init -y

# Instalar Laravel Mix (empaquetador de assets)
npm install laravel-mix --save-dev

# Instalar dependencias comunes
npm install bootstrap jquery popper.js --save

Paso 3: Configurar webpack.mix.js

Crea o edita el archivo webpack.mix.js en la raíz del proyecto:

javascript
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .version();

4. Ejemplo práctico completo

Paso 1: Crear archivos de assets

public/css/app.css:

css
body {
    font-family: 'Arial', sans-serif;
    background-color: #f8f9fa;
}

.header {
    background-color: #343a40;
    color: white;
    padding: 20px;
}

public/js/app.js:

javascript
document.addEventListener('DOMContentLoaded', function() {
    console.log('Laravel assets cargados correctamente');
    
    // Ejemplo de funcionalidad
    document.querySelector('.btn-alert').addEventListener('click', function() {
        alert('¡Funciona!');
    });
});

Paso 2: Crear vista Blade

resources/views/welcome.blade.php:

html
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel Assets Tutorial</title>
    
    <!-- Incluir CSS -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
    <div class="header">
        <h1>Bienvenido a Laravel</h1>
    </div>

    <div class="container mt-4">
        <button class="btn-alert btn btn-primary">Haz clic</button>
        <img src="{{ asset('images/logo.png') }}" alt="Logo" width="100">
    </div>

    <!-- Incluir JavaScript -->
    <script src="{{ asset('js/app.js') }}"></script>
</body>
</html>

Paso 3: Configurar ruta

routes/web.php:

php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

5. Usando Laravel Mix para compilar assets

Instalación y configuración avanzada

bash
# Instalar Laravel Mix y dependencias
npm install laravel-mix cross-env --save-dev

# Instalar preprocesadores CSS
npm install sass sass-loader --save-dev

webpack.mix.js avanzado:

javascript
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .copy('resources/images', 'public/images')
   .copy('resources/fonts', 'public/fonts')
   .version()
   .browserSync('localhost:8000'); // Recarga automática

Compilar assets:

bash
# Compilación para desarrollo
npm run dev

# Compilación para producción
npm run prod

# Observar cambios en tiempo real
npm run watch

6. Consejos y mejores prácticas

1. Usar versionado para cache busting

php
<link href="{{ mix('css/app.css') }}" rel="stylesheet">

2. Organizar assets por módulos

text
public/
├── css/
│   ├── admin/
│   ├── frontend/
│   └── auth/
├── js/
│   ├── modules/
│   ├── vendor/
│   └── app.js
└── images/

3. Usar CDN para librerías comunes

php
<!-- En lugar de incluir localmente -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">

4. Minificar assets en producción

bash
npm run prod

7. Solución de problemas comunes

Assets no se cargan

  • Verifica que el servidor esté ejecutándose

  • Revisa permisos de archivos: chmod -R 755 public/

  • Limpia cache: php artisan optimize:clear

Error 404 en assets

  • Verifica las rutas en asset()

  • Asegúrate de que los archivos existan en public/

8. Comandos útiles

bash
# Limpiar cache de rutas y vistas
php artisan route:clear
php artisan view:clear

# Optimizar aplicación
php artisan optimize

# Instalar composer dependencies
composer install

# Instalar npm dependencies
npm install

¡Listo! Ahora tienes un sistema completo para gestionar assets en tu aplicación Laravel. ¿Te gustaría que profundice en algún aspecto específico?

Comentarios

Entradas más populares de este blog

Cómo usar php artisan ui:auth en Laravel

Te explico cómo configurar el sistema de login en Laravel paso a paso