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

将Laravel项目部署到Hostinger子目录后静态资源加载失败求助

解决Laravel部署到Hostinger后资源加载404问题

1. 确认Hostinger网站根目录配置

Hostinger默认将网站根目录设置为public_html,而Laravel的前端资源必须从public目录对外提供访问。你需要:

  • 将Laravel项目public文件夹下的所有文件和子文件夹,完整复制到Hostinger的public_html目录中;
  • 若Hostinger支持自定义根目录,可直接将域名的根目录指向Laravel项目的public文件夹(通过主机面板的域名管理功能设置)。

2. 修正前端资源引用代码

public_path()是服务器端的文件路径函数,不能直接用于前端HTML。改用Laravel提供的asset()辅助函数生成正确的资源URL:

<script src="{{ asset('js/jquery.js') }}"></script>
<script src="{{ asset('js/bootstrap.min.js') }}"></script>
<script src="{{ asset('fonts/fontawesome/all.min.js') }}"></script>
<script src="{{ asset('js/chartjs.js') }}"></script>
<script src="{{ asset('js/camerajs.js') }}"></script>

如果你的项目使用Laravel Mix编译资源,建议使用mix()函数(会自动处理版本号):

<script src="{{ mix('js/jquery.js') }}"></script>

3. 检查.htaccess配置

确保public_html(或Laravel的public)目录下的.htaccess文件包含Laravel默认的重写规则:

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

如果Hostinger使用Nginx环境,需配置对应的伪静态规则(可联系Hostinger客服获取模板)。

4. 清除Laravel缓存

部署完成后执行以下命令清除缓存,确保配置和路由生效:

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

若无法通过SSH执行命令,可在项目根目录创建临时PHP脚本执行上述命令,完成后删除该脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:25:32