Bonjour,

Je fais appel à vous, car je viens d'héberger un site sur l'hébergeur OVH. Le site a été développé avec le framework Cakephp 3.

Tout fonctionne en local comme d'habtiude, mais sur OVH, seul le CSS, n'est pas détecté alors que le Js et les images oui.
Il cherche un controller css au lieu de me chercher le dossier.

Il me semble que je n'est pas touché au .Htacess, et je n'arrive pas à trouver de solution.

Voir ci-dessous

Htacces/racine

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

Htacces/webroot

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Dans l'espoir d'avoir des réponses.
Cordialement

27 réponses


sebtrays
Auteur
Réponse acceptée

Bon, j'ai réussis à résoudre le problème sans connaitre la raison exact.

J'ai simplement, récupéré cakephp et remis les fichiers au fur et à mesure. Et tout à refonctionner. Donc c'est peut être du à une mauvaise manip de ma part.

Problème résolu. Merci à vous deux encore une fois. ;)

Ne connaissant pas ton niveau,
avant de continuer , on part du principe que tu n'as pas de problème de casse (minuscule/majuscule) ?

sebtrays
Auteur

Merci de ta réponse. ^^

J'ai un niveau plutôt intermédiaire voir avancé surtout sur Cakephp. Et je confirme, je n'ai aucune problème de syntaxe. les documents ainsi que les fichiers sont biens nommés.

Je rajoute, quand j'écrit le chemin "webroot/css/app.css", j'ai bien accès à mon css.

Bonsoir.
Ne serait-ce pas par rapport à la version de PHP sur ton serveur chez OVH ?

sebtrays
Auteur

Bonsoir,

Je suis bien en Php 5 sur Ovh, j'ai bien changé sur le fichier ".ovhconfig " la ligne "app.engine.version=5.5", et vérifié avec un phpinfo();.
Donc l'erreur ne doit pas venir de là.

Ce que je trouve assez bizarre, c'est que ça soit que le chemin du css, qui est un problème

Qu'est-ce qui es généré exactement comme url pour le CSS ?

sebtrays
Auteur

Celle-ci:

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

Pourquoi y a t'il un slash à la fin ?
Tu as bien utilisé le helper Html ?

sebtrays
Auteur

Oui, sur tout mes appels avec le Helper Html, il y a un slash à la fin.

<?= $this->Html->css('app.min') ?>

Mais logiquement, on devrait quand même appeler le css avec l'url, je pense.

C'est bizarre, sur un de mes projets, je viens de vérifier, et il n'y a pas de slash à la fin.
Si tu veux y jeter un oeil.

sebtrays
Auteur

AH bah moi je vois bien les slashs de ton coté également. X)

C'est curieux, c'est peut être le navigateur pour le coup. ( J'utilise chrome)

J'utilise Chrome également, mais je ne vois pas de slash à la fin.
Ah, j'ai compris, tu fais en regardant le code source et non via l'inspecteur.
Si tu regardes via l'inspecteur, tu as des erreurs concernant le chargement des CSS dans la console ?

sebtrays
Auteur

Ah voilà. Oui, c'est plus simple dans mon cas.
Tu n'as eu aucun problème avec l'intégration de cakephp 3 sur OVH ? Car j'ai déjà mis le site sur un autre hébergeur gratuit et je n'ai eu aucune problème de ce coté là.

Petite rectification, je ne suis pas chez OVH, c'était juste pour te montrer le rendu du helper Html concernant la non présence du slash à la fin, mais nous ne regardions pas le rendu du Html généré de la même manière.

Ce que tu appelles Htaccess , c'est bien des fichiers .htaccess

sebtrays
Auteur

@lartak: Autant pour moi.

@Huggy: Oui c'est bien ça, les deux fichiers .htaccess proposé par cakephp de base à la racine et dans le fichier webroot. Je parle de ça, car j'ai vu que sur l'ancienne version, il y avait eu des problèmes avec ça.

Tu n'as pas répondu à ma question :

Si tu regardes via l'inspecteur, tu as des erreurs concernant le chargement des CSS dans la console ?

sebtrays
Auteur

Pardon je n'avais pas vu.

J'ai les erreurs 404:

Failed to load resource: the server responded with a status of 404 (Not Found)

Je suppose que les fichiers css sont bien présents à la racine du dossier css.

sebtrays
Auteur

Oui oui. J'ai accès au fichier css, en rajoutant webroot, juste avant.
exemple:

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

tu as les versions minifiées de tous tes css ?

Dans ce cas là, c'est assez bizarre que tu aies des problèmes pour les CSS et non pour les JS.

sebtrays
Auteur

Oui. Mais j'ai quand même essayé sans la minification et c'est toujours pareil en faite.

@Lartak, Très bizarre, je comprend vraiment pas d'où peut venir le problème en faite.

Quelle est ton arborescence
Parfois il faut rajouter un RewriteBase si tu as un répertoire principal sous www

sebtrays
Auteur

Tout est dans le dossier www de l'hébergeur.
Mais je sais pas si c'est comme ça qu'il faut le faire.

.htacess de Webroot ci-dessous:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>

Mais ça n'a pas l'air de fonctionner.

Parfois le pb est résolu mais à cause d'un pb de cache, on ne le voit pas
pense à rafraichir ou à tester sur un autre navigateur (c'est trivial je sais)

sebtrays
Auteur

X) Je vous remercie en tout cas de m'aider. C'est gentil à vous.
Je réssayerais demain, j'ai essayé sur trois navigateurs, mais le problème n'est toujours pas résolu.