如何在Hostinger部署Laravel+React+Vite网站?部署报错求助
Hostinger部署Laravel+React+Vite出现403/500错误的解决方法
问题回顾
已完成以下部署操作但出现异常:
- 上传网站文件至Hostinger
- 创建并配置
.env环境变量 - 搭建数据库
- 将Vite构建产物
build文件夹放入public目录 - 修改
resources/views/welcome.blade.php引入构建资源:@vite(['public/build/assets/app.a0a7c860.js', 'public/build/assets/app.69041b03.css']) - 初始
public/.htaccess为Laravel默认配置,出现403错误后,在项目根目录添加转发规则的.htaccess,引发500服务器错误。
具体解决步骤
1. 修正网站根目录配置(核心解决项)
Hostinger默认网站根目录为public_html,错误的目录映射是403/500错误的主要原因:
- 方案一(推荐):将Laravel项目
public目录下的所有文件直接上传至public_html,而非上传整个Laravel项目到public_html后做转发。 - 方案二:登录Hostinger面板,找到对应网站的「域名管理」→「网站根目录」,将其修改为你的Laravel项目下的
public文件夹路径(例如:public_html/your-project/public)。
2. 修复根目录.htaccess转发规则(若保留项目结构)
若坚持保留完整项目结构,需修改根目录.htaccess避免循环转发:
<IfModule mod_rewrite.c> RewriteEngine On # 排除已指向public的请求,防止循环 RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ public/$1 [L] </IfModule>
同时确保:
public目录权限设置为755- 所有文件权限设置为
644
3. 修正Vite资源引入路径
@vite助手的路径基于项目public目录,无需添加public前缀,修改welcome.blade.php中的代码:
@vite(['build/assets/app.a0a7c860.js', 'build/assets/app.69041b03.css'])
若使用Vite默认入口配置,更规范的写法是:
@vite('resources/js/app.js')
(需确保vite.config.js中build.outDir已配置为public/build)
4. 检查.env文件配置与权限
- 将
.env文件权限设为644(禁止设置为777,Hostinger会拦截这类高权限文件) - 确认
APP_URL设置为你的域名(例如https://your-domain.com) - 生产环境下将
APP_DEBUG设为false
5. 清除Laravel缓存
通过SSH连接Hostinger服务器,进入项目根目录执行以下命令:
php artisan config:clear php artisan cache:clear php artisan route:clear
若无SSH权限,可手动删除bootstrap/cache目录下的所有缓存文件(保留.gitignore)。
内容的提问来源于stack exchange,提问作者Lana Hanna
相关产品推荐
相关产品推荐

