Bonjour à tous !
J'ai un soucis sur Symfony 5.4.10 que je n'arrive pas à régler :
Tous mes assets semblent ne pas trouver leur chemin alors que l'affichage se fait correctement en localhost (les css s'appliquent, les images s'affichent, etc.)
Par exemple pour :
<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
<script src="{{ asset('js/script-img-fix.js') }}"></script>
<img src="{{ asset('img/Logo.png') }}" alt="Logo">
Ce que je veux
J'aimerais que mon repertoire public soit correctement localisé pour que mon code s'affiche normalement
Ce que j'obtiens
Tout ce qui est entre les quotes de l'asset 'css/bootstrap.css', 'css/style.css', etc. est surligné en jaune et au survole ça m'affiche "Missing asset"
Je suis totalement novice sur Symfony. J'ai cherché la solution partout et ai tenté toutes les manip trouvées sur divers forum mais rien n'y fait je ne trouve pas ou ne comprends tout simplement pas les manip à faire...
Merci beaucoup de votre aide !!!
Ahah en dev c'est touujours un petit détail qui casse tout x)
De rien avec plaisir ^^
Hello, pas sûr de comprendre ton problème : tes assets sont bien loadées au rendu de la page, mais ton IDE / éditeur de texte ne comprends pas ces url et t'affiche un warning ?
Salut Glioburd merci de ta réponse !
Oui c'est exactement ça. J'ai trouvé sur quelques forums des personnes qui avaient aussi ce problème mais je ne comprends pas la manip pour corriger le problème.
Par exemple :
https://github.com/Haehnchen/idea-php-symfony2-plugin/issues/1020
Dans ce cas précise au départ quel logiciel tu utilise :D
J'imagine que tu utilise PhpStorm ? Tu as installé le plugin Symfony ?
Salut !
Est-ce que quelqu'un comprend mon problème de Missing asset ? veut bien me venir en aide ?
Merci d'avance !
Bonjour wanda.
J'espère que ça t'aidera.
-Tu as bien twig d'installer ?
-Tu peux tenter de faire un "composer install" un package a peux éventuellement ne pas être installé même si il se trouve dans ta config "composer.json"
Le meilleure moyen reste d'utiliser la documentation
https://symfony.com/doc/5.4/templates.html#linking-to-css-javascript-and-image-assets
Hello, si tu places ton curseur au milieux de la partie souslignée en jaune et que tu fait Alt+Entrer, tu as une option pour ajouter un support (enable support for... ou un truc du genre)
Bonjour SiProdZz et popotte merci de vos réponses !
@SiProdZz
Je viens d'essayer avec composer require symfony/asset mais ça n'a pas réglé mon problème après redémarrage de Symfony, mes chemins sont toujours en jaune.
Je précise que tous les chemins sont en jaune : les css, les js, les images et même les ancres.
@popotte
Si je me mets sur mon Missing asset en faisant Alt+Entrer, Symfony me propose d'inspecter l'erreur mais ne suggère pas de réédition du lien comme il le fait d'habitude...
J'ai fait des captures d'écran mais ne sais pas comment vous les montrer.
Je précise aussi qu'en local tout s'affiche sans problème, c'est donc qu'il a bien compris où vont mes liens...!
Ah non ce n'est pas l'option rééditin qui est à rechercher, parce que concrètement ton lien est bon, en gros il fallait une option "enable support for" ou un truc du genre ^^
Alors pour les captures, tu héberges tes images dans un hébergeur d'images, et ensuite tu envoies le lien :p
Tu as quoi comme plugins lié à Symfony? (déjà tu as Symfony, et quoi d'autre?)
Bonjour et 1000 excuses pour ne plus avoir répondu !!!
Je n'ai pas été notifiée de vos retours et ne les avais donc pas vu...
Je ne suis toujours pas parvenue à résoudre mon problème donc voilà mon composer.json :
{
"type": "project",
"license": "proprietary",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
"php": ">=7.2.5",
"ext-ctype": "",
"ext-iconv": "",
"doctrine/annotations": "^1.0",
"doctrine/doctrine-bundle": "^2.7",
"doctrine/doctrine-migrations-bundle": "^3.2",
"doctrine/orm": "^2.12",
"phpdocumentor/reflection-docblock": "^5.3",
"phpstan/phpdoc-parser": "^1.6",
"sensio/framework-extra-bundle": "^6.1",
"symfony/apache-pack": "^1.0",
"symfony/asset": "^5.4",
"symfony/console": "5.4.",
"symfony/doctrine-messenger": "5.4.",
"symfony/dotenv": "5.4.",
"symfony/expression-language": "5.4.",
"symfony/flex": "^1.17|^2",
"symfony/form": "5.4.",
"symfony/framework-bundle": "5.4.",
"symfony/http-client": "5.4.",
"symfony/intl": "5.4.",
"symfony/mailer": "5.4.",
"symfony/mime": "5.4.",
"symfony/monolog-bundle": "^3.0",
"symfony/notifier": "5.4.",
"symfony/process": "5.4.",
"symfony/property-access": "5.4.",
"symfony/property-info": "5.4.",
"symfony/proxy-manager-bridge": "5.4.",
"symfony/runtime": "5.4.",
"symfony/security-bundle": "5.4.",
"symfony/serializer": "5.4.",
"symfony/string": "5.4.",
"symfony/translation": "5.4.",
"symfony/twig-bundle": "5.4.",
"symfony/validator": "5.4.",
"symfony/web-link": "5.4.",
"symfony/yaml": "5.4.",
"twig/extra-bundle": "^2.12|^3.0",
"twig/twig": "^2.12|^3.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"symfony/browser-kit": "5.4.",
"symfony/css-selector": "5.4.",
"symfony/debug-bundle": "5.4.",
"symfony/maker-bundle": "^1.0",
"symfony/phpunit-bridge": "^6.1",
"symfony/stopwatch": "5.4.",
"symfony/web-profiler-bundle": "5.4."
},
"config": {
"allow-plugins": {
"composer/package-versions-deprecated": true,
"symfony/flex": true,
"symfony/runtime": true
},
"optimize-autoloader": true,
"preferred-install": {
"": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\Tests\": "tests/"
}
},
"replace": {
"symfony/polyfill-ctype": "",
"symfony/polyfill-iconv": "",
"symfony/polyfill-php72": ""
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": ""
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "5.4.*"
}
}
}
Un grand merci !!!
Tu as bien ce plugin symfony? https://plugins.jetbrains.com/plugin/7219-symfony-support/
Alors si c'est le cas regardes dans les paramètres de PHPStorm, Settings->PHP->Symfony (n'ouvres pas le menu Symfony mais cliques directement dessus)->Web Directory et places le nom de ton dossier public dans le champ Web Directory :)
Languages & Frameworks > PHP > Symfony
(case cochée) Enable Plugin for this Project
Translation Root Path : app/cache/dev/translations
App Directory : app
Web Directory : web
Download remote files (exp.)
(case non cochée) Enable 5min scheduler (reopen Project after change)
Code Folding (aucune case cochée)
Route (PHP)
Repository Entity (PHP)
Template (PHP)
Route (Twig)
Template (Twig)
Constant (Twig)
Custom Features (case cochée)
Twig Icon Decoration
Yes Sire !
Petite précision (dont j'ignore si elle a de l'importance) :
j'ai développé une autre app précédemment et je n'avais pas ce problème de Missing Asset
Bonjour et euh...pardon mais pas compris.
@cgreenfelder
je suis passée à côté d'une info ?
@popotte
mon dossier public c'est bien le dossier web du coup ?
arf... désolée d'habitude je suis moi longue à la détente !!!
En principe sur Symfony le public c'est le dossier web
, sauf si tu as créé toi même un dossier public pour y mettre tes assets :p
Tu as ton projet sur Github?
Merci popotte ! Je n'ai pas changé l'emplacement de mon dossier public ( c'est bien Web Directory : web)
En revanche je n'ai pas mon projet sur Github...!
je suis toujours à la recherche d'une solution pour que mes {{ asset('css/font-awesome.css') }} ne s'affichent plus en jaune : /
Mmmh okay alors autre tentative, si tu ouvres le menu Symfony dans tes paramètres, tu as Twig / Template
Tu auras une liste de variables d'environnements, tu peux voir si tu as celui la:
Namespace: __main__
Path: template
Type: ADD_PATH
Parser: Custom
on: coché
Sinon ajoutes le et dans le menu en recliquant sur Symfony tu cliques sur Clear Index
Ensuite autre solution, peut être que ton projet ne se réindexe pas et il ne prends même pas la peine de revérifier, dans ce cas regardes dans Settings->PHP->Annotations->Cliques sur Schedule Reindex, ça va relancer le procesus d'indexation du projet (ce qui est utilisé pour les mesages) tout en bas de la fenetre tu verra une toute petite barre de chargement qui se lancera, attends la fin du chargement et vois si y a toujours le message d'erreur :)
Bon, c'est un peu le soucis, c'est que le problème peut venir de plusieurs causes possibles ^^'
Bonjour popotte et merci de ta réponse !
Alors dans l'ordre :
J'ai bien la ligne main templates ADD_PATH Internal true
MAIS :
Namespace: main
Path: template
Type: ADD_PATH
Parser: Custom --> c'est Internal chez moi (le problème peut-il venir de là ?)
on: coché
--> Dois-je modifier la ligne ou ajouter une nouvelle ligne avec le paramètre Custom ?
Lorsque je vais dans Settings->PHP->Annotations-> et que je clique sur Schedule annotation reindex
Rien ne se passe (aucune petite barre de chargement ne s'affiche)
Encore une fois MERCI BEAUCOUP !!!
De rien :p
Alors le parser tu peux toujours essayer de mettre custom a voir si ça fait qque chose
Après je viens de voir que le dossier publique de Symfony sur certaines version ce n'est pas le dossier web
mais le dossier public
c'est bine le dossier web que tu as ?
Autre chose à vérifier: tu as placé le CSS directement dans le dossier web
ou bien dans le dossier assets/styles
? Et dans le dossier publique, il y a bien le dossier build
? et si oui il y a bien un manoifest.json dedans?
Bonjour popotte !
J'ai tenté d'ajouter la ligne avec "custom" en paramètre mais ça n'a pas changer quoique ce soit donc je l'ai retirée.
Pour ce qui est de mon Web Directory c'est bien web qui est renseigné.
Et enfin mes dossiers css, js, img et fonts sont tous les 4 dans mon dossier 'public' mais pas de fichier manifest.json dans ce dossier...!
...je ne sais même pas de quoi il s'agit ='/
Ah! tu viens de dire tes dossiers css js et img sont dans le dossier "public" :p
Du coup en web directory il faut remplacer "web" par "public" et ce sera bon, et si non refais un coup de "Schedule Reindex" et ce sera reglé :p
Ouiiiiiiiiiiiiii !!!!!!! super merci beaucoup beaucoup popotte !!!!!!!!!!! C'était ça ! :D
Quelle courge que je suis ! je suis totalement passée à côté...!