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

Laravel部署Hostinger后head标签被移入body的问题求助

问题描述

标准Laravel欢迎页本地运行时页面结构正常,但部署到Hostinger平台后,<head>标签内的所有元素被自动移到<body>标签中。

排查与解决方案
  • 检查HTML语法错误
    服务器端HTML解析可能比本地更严格,先排查blade模板的标签闭合情况:

    • 确认resources/views/welcome.blade.php里的<head>和</head>标签完整,没有遗漏或嵌套错误
    • 检查<meta>、<link>等自闭合标签是否符合规范,blade指令(如@yield、@include)是否输出了错误的HTML内容
  • 调整PHP输出缓冲设置
    Hostinger的PHP环境可能开启了输出缓冲导致结构篡改,可尝试:

    • 在public/index.php顶部添加代码禁用缓冲:
      ob_end_clean();
      
    • 登录Hostinger控制面板,找到PHP设置,将output_buffering设为Off
  • 清除Laravel视图缓存
    部署后编译的视图缓存可能存在错误,执行以下命令清除:

    php artisan view:clear
    php artisan cache:clear
    

    若通过FTP部署,直接删除storage/framework/views目录下的所有文件,强制重新编译视图

  • 关闭Hostinger站点缓存/CDN
    Hostinger默认的站点加速或CDN可能缓存了错误的HTML结构,先清除控制面板中的站点缓存,或暂时关闭CDN测试是否恢复正常

  • 检查.htaccess配置
    错误的Rewrite规则可能导致输出异常,确保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>
    

    若有自定义规则,暂时移除后测试

内容的提问来源于stack exchange,提问作者Milo Van der pas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:30:54