Das Deployen einer Laravel-Anwendung mit Vite kann manchmal unerwartete Probleme verursachen. Eines der häufigsten Kopfschmerzen ist, wenn Ihre Produktionsseite Assets von localhost:5173 laden will, anstatt die kompilierten Dateien aus /public/build.
Wenn Ihre Website in Produktion deswegen nicht funktioniert, keine Sorge — diese Anleitung bietet einen praxiserprobten Fix der in mehreren Deployments getestet wurde. Am Ende werden Sie nicht nur das Problem lösen, sondern auch einen zuverlässigen Workflow einrichten, der sicherstellt, dass es nie wieder passiert.
Das Problem Verstehen
Bei der lokalen Entwicklung verwendet Laravel mit Vite einen Hot Module Replacement (HMR) Server der auf http://localhost:5173 läuft. Das macht die Entwicklung schnell und effizient, mit sofortigen Browser-Updates.
Aber hier ist der Haken:
- In Produktion läuft dieser Entwicklungsserver nicht.
- Stattdessen sollte er die vorkompilierten Assets aus
/public/buildausliefern. - Wenn Sie in Produktion Referenzen wie diese sehen:
<link rel="stylesheet" href="http://localhost:5173/resources/css/app.css">
anstatt:
<link rel="stylesheet" href="https://yourdomain.com/build/assets/app-xxxx.css">
…bedeutet das, dass Laravel immer noch versucht, den Hot-Reload-Entwicklungsserver zu verwenden.
Der Übeltäter?
Eine übrig gebliebene public/hot-Datei, die Laravel anweist, weiterhin localhost:5173 zu verwenden.
Schneller Fix für Produktion
Führen Sie diese Befehle auf Ihrem Produktionsserver aus:
cd /home/username/public_html
rm -f public/hot
php artisan config:clear
php artisan cache:clear
php artisan view:clear
✅ Dies entfernt die hot-Datei und löscht Laravel-Caches.
✅ Laden Sie anschließend Ihre Seite neu — sie sollte sofort die kompilierten Assets verwenden.
Permanenter Fix mit Deployment-Workflow
Manuelles Reparieren ist einmal in Ordnung. Aber wenn Sie häufig deployen, wollen Sie Automatisierung.
Schritt 1 – .gitignore aktualisieren
Stellen Sie sicher, dass public/build nicht ignoriert wird, da Sie kompilierte Assets in Produktion benötigen:
# Build-Ordner im Repo behalten
!public/build
Schritt 2 – Immer lokal bauen
Da Ihr Produktionsserver kein npm hat, bauen Sie Assets vor dem Pushen:
npm run build
git add .
git commit -m "Build assets for production"
git push origin main
Schritt 3 – GitHub Actions für Deployment
Aktualisieren Sie Ihren GitHub Actions Workflow um:
- Code zu deployen
public/hotzu entfernen- Caches zu leeren
Beispiel-Workflow-Ausschnitt:
- name: Remove hot file
run: rm -f public/hot
- name: Clear Laravel caches
run: |
php artisan config:clear
php artisan cache:clear
php artisan view:clear
Best Practices – Do's & Don'ts
✅ Tun:
npm run buildvor dem Deployen ausführen/public/buildin Ihr Repo committen- Cache-Leerung automatisieren
❌ Nicht tun:
npm run devauf Produktion ausführenpublic/hotcommitten- Vergessen vor dem Pushen zu bauen
Typischer Deployment-Workflow
So sollte Ihr Entwicklung → Produktion Zyklus aussehen:
# Lokale Entwicklung
npm run dev
# Vor dem Deploy
npm run build
git add .
git commit -m "Production build"
git push origin main
Ihre CI/CD-Pipeline (GitHub Actions, Forge, etc.) erledigt den Rest.
Ergebnisse für Kunden
Durch die Behebung dieses Problems erhalten Kunden:
- Eine voll funktionsfähige Produktionsseite ohne defektes CSS/JS.
- Vertrauen, dass Deployments nicht mehr kaputtgehen.
- Optimierten Workflow für Laravel + Vite Projekte.
- Weniger Ausfallzeit, was sich direkt auf Benutzererfahrung und Conversions auswirkt.
Das baut Vertrauen in Ihre Expertise auf und sichert wiederkehrende Kunden.
Häufig Gestellte Fragen
F1: Warum lädt Laravel Assets von localhost:5173 in Produktion?
Weil die public/hot-Datei noch existiert und Laravel denkt, es sollte den Entwicklungsserver verwenden.
F2: Kann ich das ohne GitHub Actions reparieren?
Ja. Löschen Sie manuell public/hot und bauen Sie Assets lokal vor dem Deployen neu.
F3: Muss ich /public/build committen?
Ja, da Ihr Produktionsserver möglicherweise kein Node/NPM hat.
F4: Was wenn ich Laravel Forge oder Vapor verwende?
Der gleiche Prozess gilt — bauen Sie immer Assets lokal und committen Sie /public/build.
F5: Sollte ich jemals npm run dev in Produktion ausführen?
Nein, das ist nur für lokale Entwicklung. Verwenden Sie npm run build für Produktion.
F6: Wie weiß ich, ob es repariert ist?
Prüfen Sie Ihren Produktions-HTML-Quellcode. Wenn Asset-URLs von /build/assets/… statt localhost:5173 laden, ist alles in Ordnung!
Fazit
Das Reparieren von Laravel Vite Assets die vom Entwicklungsserver in Produktion laden ist einfach, sobald Sie die Ursache kennen — die public/hot-Datei. Mit dem schnellen Fix und einem robusten Deployment-Workflow stellen Sie sicher, dass Produktionsdeployments immer die richtigen kompilierten Assets laden.
Das löst nicht nur das unmittelbare Problem, sondern gibt Ihnen auch einen zukunftssicheren Prozess, der Kundenvertrauen aufbaut und Produktionsumgebungen stabil hält.