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

Laravel 8 登录后dashboard页vendor/livewire/livewire.js 404错误如何解决

问题根源

你的问题核心是站点Web服务器的文档根目录配置不符合Laravel的标准部署要求,同时.htaccess存放位置错误,导致静态资源路径解析异常:Livewire默认生成的资源地址不带public前缀,请求会指向项目根目录的vendor文件夹,但实际前端静态资源仅存在于public/vendor目录下。


排查步骤
  • 确认Apache虚拟主机的DocumentRoot配置:检查是否指向了Laravel项目的根目录,而非标准要求的public子目录
  • 验证Livewire配置:查看config/livewire.php中的asset_url参数是否为默认空值,空值状态下会自动根据站点根路径生成资源地址
  • 确认文件结构:检查项目根目录的vendor文件夹下是否不存在livewire/livewire.js文件,该静态资源仅会出现在public/vendor目录下

解决方案

方案1:标准部署修正(推荐,无安全风险)

Laravel官方要求Web服务器的文档根目录必须指向public目录,既可解决资源路径问题,也能避免根目录下.env等敏感文件被公开访问:

  1. 修改Apache虚拟主机配置,将DocumentRoot从/你的项目路径修改为/你的项目路径/public
  2. 把当前存放在项目根目录的.htaccess文件移动到public目录下
  3. 重启Apache服务,无需修改其他配置即可恢复正常

方案2:不可修改站点根目录时的临时方案

如果受虚拟主机权限限制无法调整DocumentRoot,可通过以下方法临时修复:

  1. 替换项目根目录的.htaccess内容,新增静态资源转发规则:
RewriteEngine On

# 新增静态资源转发规则
RewriteRule ^(vendor|js|css|images|assets)(.*)$ public/$1$2 [L]

# 原有规则保持不变
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
  1. 修改config/livewire.php配置,指定资源前缀:
'asset_url' => '/public',
  1. 执行php artisan config:cache清除配置缓存后即可生效

注意:方案2存在安全风险,项目根目录的敏感文件可能被直接访问,仅作为临时应急方案使用。


内容的提问来源于stack exchange,提问作者Adhi Kristianto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:18:04