Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

WatchDog's avatar

Migrating to Vite, Laravel appends "App/Providers" to manifest path

I followed the official instructions for migrating from webpack to Vite, it works as it should with correctly building the public/build directory with a manifest.json inside it.

// public/build/manifest.json

{
  "resources/css/app.css": {
    "file": "assets/app-307a2a6a.css",
    "isEntry": true,
    "src": "resources/css/app.css"
  }
}
// vite.config.js

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css'
            ],
            publicDirectory: "public_html",
            refresh: true,
        }),
    ],
});
// resources/views/components/meta.blade.php

@vite('resources/css/app/css')

It's Laravel however that prepends an App/Providers string to the manifest path. I've looked through my code, the only references to App/Providers are the use App/Providers/... imports in my provider files. The stack trace doesn't seem to provide any relevant details:

Illuminate\View\ViewException:
Vite manifest not found at: /home/admin/domains/example.com/dev/app/Providers/public_html/build/manifest.json (View: /home/admin/domains/example.com/dev/resources/views/components/meta.blade.php) (View: /home/admin/domains/example.com/dev/resources/views/components/meta.blade.php) (View: /home/admin/domains/example.com/dev/resources/views/components/meta.blade.php)

  at /home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Vite.php:684
  at Illuminate\View\Engines\CompilerEngine->handleViewException()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:60)
  at Illuminate\View\Engines\PhpEngine->evaluatePath()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:70)
  at Illuminate\View\Engines\CompilerEngine->get()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/View.php:195)
  at Illuminate\View\View->getContents()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/View.php:178)
  at Illuminate\View\View->renderContents()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/View.php:147)
  at Illuminate\View\View->render()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Http/Response.php:69)
  at Illuminate\Http\Response->setContent()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Http/Response.php:35)
  at Illuminate\Http\Response->__construct()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php:57)
  at Illuminate\Routing\ResponseFactory->make()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php:87)
  at Illuminate\Routing\ResponseFactory->view()
     (/home/admin/domains/example.com/dev/app/Http/Controllers/ArticleController.php:30)
  at App\Http\Controllers\ArticleController->index()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54)
  at Illuminate\Routing\Controller->callAction()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43)
  at Illuminate\Routing\ControllerDispatcher->dispatch()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Route.php:260)
  at Illuminate\Routing\Route->runController()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Route.php:205)
  at Illuminate\Routing\Route->run()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php:798)
  at Illuminate\Routing\Router->Illuminate\Routing\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php:57)
  at Illuminate\Auth\Middleware\Authorize->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at App\Http\Middleware\CheckBanned->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:50)
  at Illuminate\Routing\Middleware\SubstituteBindings->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:78)
  at Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49)
  at Illuminate\View\Middleware\ShareErrorsFromSession->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:121)
  at Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:64)
  at Illuminate\Session\Middleware\StartSession->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37)
  at Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:67)
  at Illuminate\Cookie\Middleware\EncryptCookies->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116)
  at Illuminate\Pipeline\Pipeline->then()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php:799)
  at Illuminate\Routing\Router->runRouteWithinStack()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php:776)
  at Illuminate\Routing\Router->runRoute()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php:740)
  at Illuminate\Routing\Router->dispatchToRoute()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php:729)
  at Illuminate\Routing\Router->dispatch()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:200)
  at Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:141)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
  at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php:31)
  at Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:21)
  at Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php:40)
  at Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27)
  at Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php:57)
  at Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php:49)
  at Illuminate\Http\Middleware\HandleCors->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php:39)
  at Illuminate\Http\Middleware\TrustProxies->handle()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180)
  at Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116)
  at Illuminate\Pipeline\Pipeline->then()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:175)
  at Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
     (/home/admin/domains/example.com/dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:144)
  at Illuminate\Foundation\Http\Kernel->handle()
     (/home/admin/domains/example.com/dev/public_html/index.php:52)  

I use this code for loading from public_html instead of public as recommended in the upgrade instructions for Laravel 10.

// App/Providers/AppServiceProvider
public function register(): void
    {
        app()->usePublicPath(__DIR__ . '/public_html');
    }

Clearing the cache in a last effort doesn't help either. What are my other options?

0 likes
1 reply
WatchDog's avatar
WatchDog
OP
Best Answer
Level 10

The problem was this code snippet provided in the offical Laravel documentation.

app()->usePublicPath(__DIR__.'/public');

This works well. Except with Vite.

Please or to participate in this conversation.