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

Laravel 10多级路由下assets资源加载失败问题求助

问题排查与解决方案

针对你遇到的Laravel 10多级路由下资源加载失败的问题,按以下步骤逐一排查:

1. 确认虚拟主机的DocumentRoot指向public目录

打开XAMPP的httpd-vhosts.conf,确保虚拟主机配置的DocumentRoot直接指向Laravel项目的public文件夹(而非根目录),这是Laravel项目的正确入口配置:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\cms/public"
    ServerName cms.dev
    <Directory "C:\xampp\htdocs\cms/public">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

修改后重启Apache服务生效。

2. 强制用绝对路径引用资源

确保所有CSS/JS资源都通过Laravel的asset()辅助函数生成绝对路径,禁止直接写相对路径:

<link rel="stylesheet" href="{{ asset('assets/vendor/css/core.css') }}">
<script src="{{ asset('assets/vendor/js/core.js') }}"></script>

直接写assets/vendor/css/core.css这类相对路径,会被浏览器解析为相对于当前路由的路径,在cms.dev/account/detail下就会自动追加account层级。

3. 清空Laravel配置与视图缓存

Laravel会缓存配置文件,即使修改了.env也可能不生效,执行以下命令彻底清空缓存:

php artisan config:clear
php artisan cache:clear
php artisan view:clear

4. 验证.env配置正确性

确保.env文件中的APP_URL设置准确,不要加多余斜杠:

APP_URL=http://cms.dev

无需额外设置ASSET_URL,默认asset()会基于APP_URL生成正确的绝对路径。

5. 检查public目录下的.htaccess文件

确认public/.htaccess是Laravel默认的URL重写配置,避免路径解析错误。如果文件丢失或被修改,替换为官方默认内容:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # 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]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

6. 确认Apache的mod_rewrite模块已启用

打开XAMPP的httpd.conf配置文件,找到以下行并确保没有被注释(去掉前面的#):

LoadModule rewrite_module modules/mod_rewrite.so

修改后重启Apache服务。

额外排查点

  • 打开浏览器开发者工具的「网络」标签,查看资源请求的完整URL:如果生成的路径是相对路径,说明APP_URL未正确加载,需再次执行清空缓存的命令。
  • 对比之前Laravel 9项目的虚拟主机和.htaccess配置,确认是否存在差异(Laravel 10在URL重写规则上无重大变更,配置逻辑一致)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:54:57