Laravel项目带参数路由页面Livewire脚本加载失败问题
解决Livewire在带参数路由下找不到且脚本URL重复/public的问题
可能的原因及对应解决方案
1. 修正APP_URL配置
打开项目根目录下的.env文件,确认APP_URL设置为项目根域名(不带/public),比如:
APP_URL=http://localhost:8000
若APP_URL末尾带了/public,Livewire生成脚本路径时会叠加,导致重复出现该路径。
2. 替换Livewire脚本引入方式
全局模板app.blade.php中,将@livewireScripts替换为绝对路径引入,避免带参数路由下相对路径解析错误:
<script src="{{ asset('vendor/livewire/livewire.js') }}" defer></script> @livewireStyles
asset()函数会基于APP_URL生成正确的绝对路径,不会受当前路由层级影响。
3. 清除缓存
执行以下命令清除Laravel和Livewire的缓存配置:
php artisan cache:clear php artisan view:clear php artisan livewire:clear
旧的缓存路径配置可能导致带参数路由下的脚本路径异常。
4. 检查路由定义
确认/funcionario/{id}路由未被错误的路由组前缀嵌套,比如避免类似Route::prefix('public')的包裹,确保路由定义简洁:
Route::get('/funcionario/{id}', [FuncionarioController::class, 'show'])->name('funcionario.show');
5. 验证服务器根目录配置(生产环境)
若部署在Apache或Nginx服务器,确保服务器根目录指向项目的public文件夹而非项目根目录。以Nginx为例,配置应包含:
root /path/to/your/project/public;
若服务器根目录未指向public,访问带参数路由时会触发路径拼接错误,导致重复出现/public。
内容的提问来源于stack exchange,提问作者EduardoK
相关产品推荐
相关产品推荐

