You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XAMPP时Livewire失效,php artisan serve下正常的问题求助

解决XAMPP子目录访问时Livewire失效的问题

这种情况我碰到过好几次了,大概率是URL配置或者路由重写的问题导致Livewire没法正确识别AJAX请求,所以才会跳过Livewire的拦截逻辑直接提交表单。下面给你几个实用的排查和解决方向:

1. 修正.env里的APP_URL配置

Livewire依赖正确的APP_URL来生成资源和请求路径,你需要确保它和XAMPP的访问地址完全一致:

  • 打开项目根目录的.env文件,把APP_URL改成:
    APP_URL=http://localhost/daily/public
    
  • 改完后记得清除配置缓存,避免旧配置生效:
    php artisan config:clear
    

2. 配置XAMPP虚拟主机(推荐方案)

子目录访问很容易引发路径识别问题,用虚拟主机能从根源上避免这类麻烦,步骤如下:

  • 打开XAMPP的httpd-vhosts.conf文件(一般在xampp/apache/conf/extra目录下)
  • 添加以下虚拟主机配置(注意替换成你自己的项目路径):
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs/daily/public"
        ServerName daily.test
    </VirtualHost>
    
  • 修改系统hosts文件:
    • Windows:C:\Windows\System32\drivers\etc\hosts
    • Linux/Mac:/etc/hosts
      添加一行:127.0.0.1 daily.test
  • 重启XAMPP的Apache服务,之后用http://daily.test访问项目,Livewire就能正常工作了

3. 验证Livewire资源加载路径

如果子目录导致Livewire的JS/CSS加载失败,也会引发功能异常:

  • 打开浏览器开发者工具(F12),切换到Console面板,检查有没有404错误
  • 如果资源路径错误,可以在config/livewire.php里手动指定asset路径:
    'asset_url' => env('ASSET_URL', 'http://localhost/daily/public'),
    
  • 同样执行php artisan config:clear生效配置

4. 检查表单的Livewire指令

最后确认你的表单有没有正确添加Livewire的拦截指令:

  • 确保表单标签上存在wire:submit.prevent,比如:
    <form wire:submit.prevent="handleSubmit">
        <!-- 表单字段 -->
        <button type="submit">提交</button>
    </form>
    
  • 没有prevent属性的话,Livewire无法阻止默认的表单提交行为

按照上面的步骤逐一排查,基本就能解决问题了。我之前用子目录部署Laravel+Livewire时,就是通过配置虚拟主机和修正APP_URL搞定的。

内容的提问来源于stack exchange,提问作者Benzigar J S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:54:59