8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je m'attaque au CSS de mon site et je rencontre des problèmes pour que mon fichier projet.css soit accessible depuis toutes les pages.
Actuellement j'ai :
- un fichier layout.twig dans lequel se trouve ma balise <link rel="stylesheet" >,
- plusieurs fichiers qui commencent avec {% extends 'layout.twig' %} et divers blocs (head, title, content) pour générer les pages d'accueil, de contact, ...,
- un fichier ownpage_layout.twig pour le template des pages des utilisateurs, qui commencent avec {% extends 'layout.twig' %},
- plusieurs fichiers qui commencent avec {% extends 'ownpage_layout.twig' %} et divers blocs (head, title, content) pour générer les pages des utilisateurs.

Toutes les vues twig sont dans le même dossier.

Quand je vais sur les pages d'accueil, de contact, ... j'ai bien l'application des règles CSS définies.
Quand je me connecte avec un compte utilisateur, j’aboutis à la page index.php/connexion et j'ai bien la mise en page et l'affichage de la page d'accueil du compte utilisateur.
Par contre, si je navigue sur les pages utilisateur, ... plus de CSS !

J'ai regardé le code source des pages affichées et à chaque fois j'ai la même chose :
<link rel="stylesheet" href="../../web/css/projet.css">


Par contre, pour les pages avec un problème d'affichage, le lien de mon code source ne me donne pas
view-source:http://localhost/projet//web/css/projet.css
mais
view-source:http://localhost/projet/web/index.php//web/css/projet.css

Visiblement c'est lié à la cascade d'héritage des vues twig (le problème disparaît si je mets un chemin "en dur" pour mon fichier CSS dans layout.twig), mais comment puis-je éviter ce problème ?

J'ai essayé de comprendre la documentation (de twig et de symfony) sur "asset" ... mais je n'arrive pas à comprendre comment la mettre en œuvre.

Merci d'avance pour votre aide,

Alexandre
Ne faut il pas faire de la sorte normalement dans le fichier twig? :

<html>
    <head>
        {# ... #}

        {% block stylesheets %}
            <link href="{{ asset('css/projet.css') }}" rel="stylesheet" />
        {% endblock %}
    </head>
    <body>
        {# ... #}


    </body>
</html>
view-source:http://localhost/projet//web/css/projet.css
mais
view-source:http://localhost/projet/web/index.php//web/css/projet.cs



le double // ne pose-t-il pas problème ?
julioIsere a écrit :
Tout est documenté ici : http://symfony.com/doc/current/templating.html


J'essaie mais pour moi c'est particulièrement obscur (en plus du fait que je n'utilise pas l'architecture en Bundle de Symfony ou l'ensemble de ses services) au sujet des assets.

J'essaie d'installer Asset, je tape "$ composer require asset" dans ma console et comme réponse j'ai :
[InvalidArgumentException]
Could not find package asset at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability