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

部署Hostinger后仅显示h1标签,React组件无法加载求助

解决方案:Hostinger部署后React无法加载至#app容器
  • 先完成Vite生产构建
    本地执行npm run build,生成public/build目录,里面是编译后的生产环境JS/CSS文件。必须把这个build目录上传到Hostinger的public文件夹下,不要直接上传源码目录。Hostinger上禁止运行开发环境命令,必须用预构建的资源。

  • 修正资源引用方式
    你当前在blade里直接引用resources/css/app.css和node_modules里的文件,这在生产环境不可行——resources是源码目录,不会被Hostinger公开访问,node_modules也不会被上传到服务器。
    正确做法:在app.jsx里导入CSS文件(比如import './app.css'),让Vite构建时自动处理样式资源;删掉blade里手动写的<link>标签,只保留@viteReactRefresh和@vite('resources/js/app.jsx')即可,Vite会自动注入构建后的资源链接。

  • 检查Vite的base路径配置
    打开vite.config.js,确认base参数匹配你的部署路径:

    • 根域名部署:设置base: '/'
    • 子目录部署(如https://xxx.com/myapp):设置base: '/myapp/'
      示例配置:
    import { defineConfig } from 'vite';
    import laravel from 'laravel-vite-plugin';
    import react from '@vitejs/plugin-react';
    
    export default defineConfig({
        plugins: [
            laravel({
                input: 'resources/js/app.jsx',
                refresh: true,
            }),
            react(),
        ],
        base: '/', // 根据实际部署路径调整
    });
    
  • 确认React挂载代码正确
    检查resources/js/app.jsx里的挂载逻辑,确保正确指向#app容器:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import App from './App'; // 你的主React组件
    import './app.css'; // 在这里导入样式
    
    const root = ReactDOM.createRoot(document.getElementById('app'));
    root.render(
        <React.StrictMode>
            <App />
        </React.StrictMode>
    );
    

    本地先运行npm run dev测试正常,再构建上传。

  • Hostinger权限与目录设置

    • 确保public/build目录权限为755,文件权限为644,权限错误会导致资源加载失败。
    • 在Hostinger面板中,将网站根目录设置为项目的public文件夹,而非项目根目录。
  • 控制台排查错误
    打开浏览器F12控制台:

    • 查看Network标签,确认JS/CSS资源是否返回404(路径错误)
    • 查看Console标签,排查语法错误、模块缺失等问题,根据报错信息针对性修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:36