IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

include du CSS et javaScript MVC


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 28
    Points : 21
    Points
    21
    Par défaut include du CSS et javaScript MVC
    Bonjour,

    Je développe une application en PHP objet en MVC ( modèle vue controleur ), je galère depuis un certains sur un problème bénin mais dont je trouve pas de solution...

    Voici l'arborescence de mon projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Racine :
     
    index.php
     
    css
    >materialize.min.css
    js
    >materialize.min.js
     
    images
    >
     
    includes
    >header.php
    >menu.php
    >footer.php
     
    controleur
    >C_login.php
    modele
     
    vue
    >V_login.php
    Et voici le code de mon header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <!--Import Google Icon Font-->
        <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <!--Import materialize.css-->
        <link type="text/css" rel="stylesheet" href="../css/materialize.min.css"  media="screen,projection"/>
     
        <!--Let browser know website is optimized for mobile-->
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     
    </head>
    </html>
    Dans l'index et dans le contrôleur je fais donc un include de mon header.php et de mon menu.php cependant le problème c'est pour l'index le href nécessaire est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="css/materialize.min.css"
    Et pour mon contrôleur ( C_login.php ) c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="../css/materialize.min.css"
    Hors le fichier header.php possède seulement 1 des 2, je ne sait pas comment faire un alternatif qui bouge suivant la page ou l'on est, avez vous une solution ? J'ai également le même problème pour le menu évidemment puisque là aussi les liens dans le menu dépendent de la position du fichier où l'on se trouve. Je trouve ça redondant et embêtant de le mettre plusieurs fois dans le projet

    Merci par avance,

    Damien

  2. #2
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    utilise une url, genre http://www.mondomain.tld/css/materialize.min.css

    Peut importe la page, l'url sera la même.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci pour ta réponse mais je n’aime pas vraiment utiliser des URL comme ça en dur car par exemple actuellement je travaille en localhost et quand je vais l’héberger il va falloir tout changer… En soit ce n’est pas un problème si c’est uniquement pour le CSS et le JS mais je rencontre également le même problème pour le mon menu général qui est un include et dont les liens dépendent donc au même titre que le css et js de l’emplacement du fichier utilisé dans le projet.

    Existerai-t-il pas une autre solution ?

  4. #4
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    L'inclusion des css/js se base sur l'URL, pour l'include php, tu as le choix.

    Tu peux rencontrer des soucis en n'utilisant pas l'URL complète.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <link type="text/css" rel="stylesheet" href="/css/materialize.min.css"  media="screen,projection" />
    Cela fonctionnera pour toutes les pages "racines" du site.

    Par contre, en partant du principe que tu utilises l'URL Rewriting, et tu as une page du genre monsite.tld/machin/bidule/
    Alors le css sera cherché dans un répertoire /machine/bidule/css
    Ce répertoire n'existant pas, le css ne sera pas chargé.

    Pour te faciliter la tâche, créé toi une constante appelé URLSITE et qui contient l'URL du site.
    Utilise cette constante pour les appelles css / js.
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <link type="text/css" rel="stylesheet" href="<?= URLSITE ?>/css/materialize.min.css"  media="screen,projection" />
    Si le domaine change, tu ne change qu'une ligne de code

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Yes ! Parfait ta solution avec la constante uniquement à changer, je vais faire ça également pour le menu du coup. Je n'y avais pas pensé !

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Eviter le scintillement lors de manip css avec javascript...
    Par MasterOfChakhaL dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/04/2006, 20h11
  2. manipuler css en javascript ?
    Par michaelbob dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/03/2006, 17h49
  3. css et javascript
    Par roger12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2006, 10h30
  4. Appeler une classe CSS avec Javascript
    Par p0Kep0K dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/02/2006, 14h50
  5. [servlet] feuille de styme css et javascript
    Par bob33 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 24/03/2004, 08h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo