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

部署在虚拟主机上的Laravel项目样式、字体及JS加载失败求助

Laravel虚拟主机部署后资源加载失败排查方案

问题概述

本地开发环境正常,部署到虚拟主机后,项目的样式、JS文件(通过asset()引入)以及外部HTTPS字体链接均加载失败,控制台返回404错误。

核心信息

  • 资源引入代码:
<link rel="stylesheet" href="{{ asset('styles/style.css') }}">
<script src="{{ asset('js/main-page.js') }}"></script>
<link href="https://fonts.cdnfonts.com/css/agency-fb" rel="stylesheet">
  • config/filesystems.php相关配置:
'local' => [
    'driver' => 'local',
    'root' => storage_path('app'),
    'throw' => false,
],

'public' => [
    'driver' => 'local',
    'root' => storage_path('app/public'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
    'throw' => false,
],
  • 部署流程:Installatron安装Laravel → 复制项目文件 → 引入laravel/livewire → 执行composer update、composer dump-autoload
  • 已尝试操作:修改AppServiceProvider.php强制HTTPS,替换asset()为其他方法,均未解决问题

排查解决思路

1. 确认public目录完整性与权限

  • 核对虚拟主机上的public/styles、public/js目录是否和本地完全一致,确保所有资源文件完整上传
  • 给主机上的public目录及子文件设置正确权限:目录设为755,文件设为644,避免权限不足导致访问被拒

2. 校验APP_URL配置

  • 打开.env文件,确认APP_URL为虚拟主机的完整HTTPS域名(例如https://your-domain.com),若部署在子目录需追加路径
  • 执行php artisan config:clear清除配置缓存,使新配置生效

3. 检查虚拟主机文档根目录

  • 虚拟主机的文档根目录必须指向Laravel项目的public文件夹,而非项目根目录。若指向错误,asset()生成的路径无法正确映射资源
  • 登录主机控制面板或联系服务商确认文档根目录的设置

4. 排查外部字体加载异常原因

  • 检查主机是否启用内容安全策略(CSP),若有需添加fonts.cdnfonts.com到允许列表
  • 查看浏览器控制台详细错误信息,确认是否存在域名拦截情况
  • 临时将外部字体下载到本地public/fonts目录,改为本地引入测试,排除外部域名访问限制

5. 重新生成Storage符号链接

  • 若资源存放在storage/app/public目录,执行php artisan storage:link生成public/storage到storage/app/public的软链接
  • 若主机无法执行命令,可手动复制storage/app/public下的文件到public/storage目录,或联系服务商协助创建软链接

6. 验证URL重写规则

  • Apache环境:确保public/.htaccess文件存在且配置正确,主机已启用mod_rewrite模块
  • Nginx环境:确认配置文件包含Laravel重写规则,将所有请求转发到index.php

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:12:34