Pour mon panneau d'administration, j'extrais tous les actifs, y compris le manifest-json.js
Vers mix.setPublicPath(path.normalize('public/backend/'))
.
Tous les fichiers sont correctement ajoutés au dossier principal et le fichier manifest-json.js
Se présente comme suit:
{
// all correct here
"/js/vendor.js": "/js/vendor.js",
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css",
"/js/manifest.js": "/js/manifest.js"
}
le problème est que lors de l'utilisation
{{ mix('backend/css/app.css') }}
dans mes fichiers de lame, il recherche dans public/manifest-json.js
au lieu de le rechercher dans backend/manifest-json.js
.
Comment puis-je m'assurer que le bon fichier manifest-json.js
Est utilisé?
Le problème que j'ai rencontré était que la fonction d'assistance mix()
- par défaut recherche le fichier manifest-json dans /public/manifest-json.js
. Par conséquent, si vous stockez ce fichier à un autre niveau de répertoire, l'erreur sera renvoyée. .
Supposons que le fichier manifest-json soit stocké dans public/app/manifest-json.js
. Pour un fichier situé dans public/app/css/app.css
, Vous utiliseriez:
<link rel="stylesheet" href="{{ mix('css/app.css', 'app') }}">
La fonction d'assistance mix()
- permet un deuxième argument, le répertoire du fichier manifeste. Spécifiez-le simplement ici et il utilisera le fichier manifeste correct.
j'ai résolu mon problème en exécutant cette commande
npm install
et alors
npm run production
Je vous remercie.
J'ai eu même exception après le déploiement laravel projet sur le serveur. Cela fonctionnait parfaitement sur localhost mais après de nombreuses recherches, j'ai trouvé une solution. Si vous rencontrez cette exception sur le serveur, vous devez associer votre chemin public à public_html
Il suffit d'aller à sous l'application/fournisseurs, vous trouverez votre AppServiceProvider fichier et à l'intérieur boot () méthode faire la liaison comme ci-dessous.
$this->app->bind('path.public', function() {
return base_path().'/../public_html';
});
Dans hôtes partagés et laravel 5.6 testés: après avoir effectué des niveaux standard tels que expliqué ici ; deux niveaux nécessaires: dans app/Providers/AppServiceProvider.php
:
$this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
});
et dans le fichier public_html
, créez un fichier .htaccess
avec le contenu suivant:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
source: ici ce fichier change le plus dans certaines situations.
c'est tout et résolu mon problème
j'ai le même problème en tant que questionneur: manifest does not exist
pour résoudre ce que j’ai fait est d’exécuter 2 commandes comme suit:
npm install
et alors
npm run dev
et l'erreur est résolue maintenant. Yippi.
J'ai eu le même problème avec un paquet Laravel, ses actifs n'ont pas été publiés:
Ceci a résolu le problème pour moi:
php artisan vendor:publish --tag=telescope-assets --force
Sources: https://github.com/laravel/telescope/issues/136https://github.com/laravel/telescope/issues/25