web-dev-qa-db-fra.com

Le manifeste Mix n'existe pas quand il existe

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é?

17
Chris

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.

10
Chris

j'ai résolu mon problème en exécutant cette commande

npm install

et alors

npm run production

Je vous remercie.

21
user6710403

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';
    });
16
Gvep

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

7
Solivan

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.

4
Haritsinh Gohil

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

2
Denes Papp