8768 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

J'ai un site développé avec synfony et sonata

J'ai mis à jour des liens erronés dans les fichier .inc

Mais, malgré le vidage du cache, impossible d'afficher les nouveaux liens dans la page du site, il doit y avoir un autre cache

à savoir que mon dossier App/cache
contient 2 sous dossiers, dev et prod, je n'ai vidé que prod
est-ce que je peux faire de même avec dev sans risque ?

Et est-ce que ça peut venir de cela

Merci
Cézig
Bonjour,

De quels fichiers .inc parles-tu ?
Utilises-tu l'outil en version de production ou de développement ? Tu as "app_dev.php" dans l'url de ton appli si c'est la version de dev.
Si tu es sur la version de dev, vide le cache du dev aussi pour tester. Dans tous les cas, il n'y a pas de risque à vider les dossiers de cache.
merci Raphaël,

je vais tester de vider le cache de Dev, ça me paraîtrait assez logique que ce soit lui le pb
s'il mémorise les liens

Mon problème c'est que je me suis fait livrer le site en l'état et pour l'instant, j'ai quelque petit trucs de ce genre à corriger, mais je ne suis absolument pas familier de l'environnement
et mon développeur n'est pas très disponible

Y a-t'il un problème à être rester en mode dev, dans un site en prod ?

Cézig
cezig a écrit :
Y a-t'il un problème à être rester en mode dev, dans un site en prod ?

Ça pose des problèmes de performance, car en dev il n'y a quasiment aucune gestion de cache. Par exemple, chaque asset est rechargé à chaque appel.
De plus, en dev, tu afficheras les erreurs de ton site et leurs descriptions, à la vue de tous, au lieu d'afficher une erreur 404 ou 500 par exemple.
Et si ce n'est pas désactivé, il y a la barre de debug qui apparait également.
Es-tu bien sur d'être en dev ?

a écrit :
je me suis fait livrer le site en l'état et pour l'instant

Je ne suis pas sur de comprendre, ton prestataire ne peux pas te faire les modifications ?
Modifié par Raphi (05 Nov 2015 - 09:42)
La boite a fait faillite !
Le prestataire qui me suivait a eu la gentillesse de continuer pour me livrer un site exploitable, mais, j'ai fait des concessions sur le cahier des charges initial et pour les petits bug "ch..." j'essaye de me dépatouiller
sauf que mon expérience date de bidouillage il y a dix ans et je suis un peu hermétique à l’architecture de mon nouveau joujou
Et en plus je n'ai plus les moyens de sous traiter cette partie

D'après ce que tu me dis je ne suis (heureusement) pas en dev

pour te résumer

j'ai modifié dans le répertoire /public_html/MON_SITE/app/Resources/View
le fichier "mention_legale_cookies.inc" il y avait le lien qui n'était pas sur la bonne cible =>

<!-- Div mention légale cookie -->
{# Styles #}
<style>
    #block_mention_legale_cookies{
        background-color: #E9E9E9;
        opacity: 1;
        z-index: 100;
        margin-left: 30px;
        margin-right: 30px;
        padding-top: 20px;
        padding-left: 50px;
        padding-right: 50px;
        padding-bottom: 20px;
        text-align: center;
        position: fixed;
        width: 100%;
    }
    #block_mention_legale_cookies_text{
        margin-bottom: 20px;
        padding-left: 180px;
        padding-right: 180px;
    }
</style>
{# Contents #}
<div class="mention_legale" id="block_mention_legale_cookies">
    <div id="block_mention_legale_cookies_text">
        <p>
            En poursuivant votre navigation sur ce site, 
            vous acceptez l’utilisation de Cookies qui nous permettent notamment de mesurer l’audience de notre site 
            et de vous proposer des contenus, services et publicités adaptés à vos centres d’intérêt. 
        </p>
    </div>
    <div class="inline" style="float: right">
        <a href="{{path('static', {page:'[#red]charte-de-confidentialite[/#]'})}}"> En savoir plus </a>
        &nbsp;&nbsp;
        <button class="btn btn-sm btn-success" id="btn-close-allow-cookies" >Ok</button>
    </div>
</div>


Sauf que pour le moment et après vidange du cache, c'est comme si je n'avais rien fait

as-tu une piste ?


merci de ton aide
juste les balises RED du lien : charte-de-confidentialite

sont une erreur de mon message
étant en code elles ne surlignent pas le lien en cause

elle ne sont pas dans le fichier initiale
Ok je comprends mieux.

Sinon tu as pensé à vider le cache de ton navigateur ?

On peux tester autre chose si tu veux. Ouvre la version de dev du site.
Si ton url c'est :
http://mon-url.fr/blablabla
Écris ça à la place :
http://mon-url.fr/app_dev.php/blablabla

Et là, tu va sur la page qui n'affiche pas le bon lien et tu regardes si ta modification se voit.
Es-tu sur que 'static' est une route qui existe ?
Essaye en écrivant une url en dur sans passer par la notation twig, comme par exemple :
<a href="http://google.fr">En savoir plus</a>


Si en version de dev rien ne se passe, alors il faut que tu vérifies que tu travailles bien sur la bonne vue.
Modifié par Raphi (04 Nov 2015 - 15:11)
cezig a écrit :
juste les balises RED du lien : charte-de-confidentialite

sont une erreur de mon message
étant en code elles ne surlignent pas le lien en cause

elle ne sont pas dans le fichier initiale

Ah ok, je me demandais pourquoi cette façon de noter le lien. Smiley lol
Ah par contre, il est possible que le développeur ai retiré le app_dev.php.
Si c'est le cas, rajoute un fichier app_dev.php dans le dossier /web de ton application.
De plus il faut que tu rajoutes ton ip pour autoriser l'accès à la version de dev.
Voici le contenu du fichier avec les infos à renseigner :
<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;

// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read  http://symfony.com/doc/current/book/installation.html#configuration-and-setup  for more information
//umask(0000);

// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1',/*Ton IP doit être notée ici*/'XXX.XXX.XXX.XXX')) || php_sapi_name() === 'cli-server')) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
Debug::enable();

require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Raphi a écrit :

Ok je comprends mieux.

Sinon tu as pensé à vider le cache de ton navigateur ?

Oui = Rien
je te précise que j'ai le même PB avec des lien en dur d'image, qui refuse obstinément de s'échanger apres modification

Raphi a écrit :

On peux tester autre chose si tu veux. Ouvre la version de dev du site.
Si ton url c'est :
http://mon-url.fr/blablabla
Écris ça à la place :
http://mon-url.fr/app_dev.php/blablabla



Et là, tu vas sur la page qui n'affiche pas le bon lien et tu regardes si ta modification se voit.
Es-tu sur que 'static' est une route qui existe ?



J'ai des grosses différence entre les URL et les cible réelles par ailleurs le fichier app_dev.php semble absent

Raphi a écrit :

Essaye en écrivant une url en dur sans passer par la notation twig, comme par exemple :
&lt;a href="http://google.fr"&gt;En savoir plus&lt;/a&gt;



En fait même quand je change le texte en dur du .INC, l'affichage ne change pas après vidange des caches serveurs et navigateur

[quote=Raphi]
Si en version de dev rien ne se passe, alors il faut que tu vérifies que tu travailles bien sur la bonne vue.


Je n'ai pas trouvé d'autre fichier contenant ce texte !

En fait ce dossier semble ne gérer que la construction de la page d'index du site et pas les autres
un fichier base.html.twig assemble les bloc en .inc

soit il a un cache propre (mais celui que je nettoie est dans le même répertoire app)

soit nettoyer le cache APP ne nettoie pas un autre cache supérieur dans le site

Bref prise de tête, as-tu une idée pour cette dernière suggestion
le reste du site semble etre dans un autre repertoire :

web/bundle
/public_html/v2_prod (défini comme dossier racine) /app/Resources/views/
et là
base.html.twig organise les blocs
-header-home.inc
-mention_legale_cookies.inc
-offre.inc
....
Bon bah il faut tester l'appli en dev alors. Reprend mes message précédents et ouvre l'appli en mode dev.
1/ miracle j'ai réussi à fairece que tu m'as dit !
Smiley cligne

2/ la où il n'y a pas de miracle, c'est que je ne comprends rien =>

Avec monsite.com/app_dev.php le 1er paragraphe donne ça (je ne suis pas sur de ne pas publier des données de sécurité, dis moi ce que je dois te faire connaitre de la suite, j'ai rendu anonyme les dossiers qui me sont propres

Whoops, looks like something went wrong.

1/1ContextErrorException: Warning: is_dir(): open_basedir restriction in effect. File(/usr/php4/lib/php) is not within the allowed path(s): (/home/lxxxxx:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp) in /home/xxxxxx/public_html/xxx_xxxt/vendor/symfony/symfony/src/Symfony/Component/Process/ExecutableFinder.php line 59
Oulah...
Tu es sur un serveur mutualisé OVH ?
Si oui, vérifie ton fichier .ovhconfig à la racine de ton serveur FTP.
Il doit contenir une ligne du style :
app.engine=php
app.engine.version=5.5

Mais sinon réfère toi à la documentation suivante :
http://www.ovh.com/fr/g1207.configurer-php-web

Si le problème ne vient pas de là, alors ouvre ton fichier /app/autoload.php
Et rajoute cette ligne :
ini_set('open_basedir', $_SERVER["DOCUMENT_ROOT"]);

juste avant :
$loader = require __DIR__.'/../vendor/autoload.php';
non, pas OVH mais planethoster.

pas de fichier .xxxconfig de type=>

a écrit :

Si oui, vérifie ton fichier .ovhconfig à la racine de ton serveur FTP.


j'ai fait ça (et vidé les caches) sans changement

a écrit :

Si le problème ne vient pas de là, alors ouvre ton fichier /app/autoload.php
Et rajoute cette ligne :
ini_set('open_basedir', $_SERVER["DOCUMENT_ROOT"]);

juste avant :
$loader = require __DIR__.'/../vendor/autoload.php';

Est-ce que tu peux créer un fichier phpinfo et me dire en quelle version de php tu es stp ?
tu veux dire que je dois faire un fichier php avec la commande indiquée ?
où y a t-il un chemin existant pour cela ?
Pages :