Browse Source

fix: serve Livewire JS on legacy /livewire/livewire*.js paths

Livewire v4 uses hashed URLs; cached HTML or proxies may still request
/livewire/livewire.min.js and get 404. Register web routes that delegate
to the same FrontendAssets handler as the official script route.

Co-authored-by: Cursor <cursoragent@cursor.com>
yemeishu 3 days ago
parent
commit
78392cfc5f
1 changed files with 10 additions and 0 deletions
  1. 10 0
      routes/web.php

+ 10 - 0
routes/web.php

@@ -7,6 +7,16 @@ use App\Services\KatexRenderer;
 use App\Services\KnowledgeExplanationService;
 use App\Services\KnowledgeExplanationService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Route;
 use Illuminate\Support\Facades\Route;
+use Livewire\Mechanisms\FrontendAssets\FrontendAssets;
+
+/*
+| Livewire v4 脚本走 /livewire-{hash}/livewire.min.js;部分 CDN/浏览器仍请求 v2/v3 旧路径
+| /livewire/livewire.min.js,导致 404。此处注册兼容路由,返回与官方脚本路由相同的文件。
+*/
+Route::middleware('web')->group(function () {
+    Route::get('livewire/livewire.min.js', [FrontendAssets::class, 'returnJavaScriptAsFile']);
+    Route::get('livewire/livewire.js', [FrontendAssets::class, 'returnJavaScriptAsFile']);
+});
 
 
 Route::get('/', function () {
 Route::get('/', function () {
     return redirect()->route('filament.admin.pages.dashboard');
     return redirect()->route('filament.admin.pages.dashboard');