Autour de Laravel

Problème avec un CSS sous Laravel 9

Avatar de ChristianB
ChristianB

Bonjour, J'ai un projet Laravel 9 fraichement installé dans une machine virtuelle (VirtualBox). J'ai modifié la route "/" dans le fichier "/routes/web.php" pour tester comme ceci :

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

J'ai créé le fichier "/resources/view/test.blade.php" dont voici le contenu

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <title>Page test</title>

        <!-- Fonts -->
        <link href="{{ asset('/mycss.css') }}" rel="stylesheet">

    </head>
    <body class="antialiased">
        <h1>TEST LARAVEL 9.30.1</h1>
        <table>
            <tr>
                <td>Test</td>
            </tr>
        </table>
    </body>
</html>

Enfin, j'ai créé le fichier "/public/mycss.css". Lorsque le fichier ne contient que ceci

h1 {
    background-color: blue;
}

table {
    border: 1px solid #ccc;
    border-collapse: collapse;
    margin: 0;
    padding: 0;
    width: 100%;
    table-layout: fixed;
}

table caption {
    font-size: 1.5em;
    font-weight: 700;
}

Ma balise H1 est bien lue et tout fonctionne comme je veux. Mais dès que je modifie le style "table caption" comme ceci :

table caption {
    font-size: 1.5em;
    font-weight: 700;
    margin: 0 auto;   <= style rajouté
}

Non seulement ma balise h1 n'est pas lue mais chose étrange, j'ai bien un code http de 200 concernant mon fichier mycss.css mais je me rends compte que dans le code source de ma page HTML, le fichier css pointe vers l'ancien (sans le margin: 0 auto) comme si la page n'avait rechargé que le cache. J'ai beau exécuter la commande suivante :

php artisan cache:clear

mais cela ne change rien. Pour être sûr que ce n'est pas une histoire de cache, j'ai supprimé tout le contenu de mon fichier mycss.css et je n'ai gardé que la balise h1. J'ai rechargé la page et tout fonctionne. Je ne comprends pas d'où vient le problème. Merci pour votre aide

Avatar de Larabiz
Larabiz

Le cache, c'est côté navigateur que tu dois le supprimer. (Voici la marche à suivre : https://support.google.com/accounts/answer/32050?hl=fr&co=GENIE.Platform%3DDesktop)

Utilise php artisan cache:clear seulement lorsque tu veux supprimer des valeurs que tu auras ajouté toi-même via le système de cache de Laravel (https://laravel.com/docs/cache).

Petites suggestions :

  • Utilise secure_asset() plutôt que asset() ;
  • Utilise Laravel Mix (https://laravel.com/docs/mix) et configure-le avec version() afin qu'il versionne tes fichiers et que tu n'aies plus ce genre de soucis à l'avenir.

— Benjamin de Larabiz

Vous ne pouvez pas répondre à ce sujet.