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

Laravel部署至Hostinger后SCSS未加载及路由失效问题排查

Laravel部署至Hostinger后SCSS样式未加载、路由无法访问问题

我用Laravel开发了一个Web应用,部署到Hostinger生产服务器预览时,出现两个问题:

  • SCSS编译后的样式无法加载
  • 控制器路由无法正常访问

本地环境运行完全正常,已经执行npm run production用Laravel Mix构建了资源,怀疑问题出在.htaccess配置上,相关配置和项目信息如下:

.htaccess 配置

<IfModule mod_rewrite.c>
 RewriteEngine On
RewriteBase /folder1/
    RewriteRule ^(.*)$ public/index.php/$1 [L]
</IfModule>

package.json 配置

{
    "private": true,
    "type": "commonjs",
    "scripts": {
        "dev": "npm run development",
        "development": "mix",
        "watch": "mix watch",
        "hot": "mix hot",
        "prod": "npm run production",
        "production": "mix --production"
    },
    "devDependencies": {
        "axios": "^1.1.2",
        "laravel-mix": "^6.0.49",
        "laravel-vite-plugin": "^0.7.5",
        "resolve-url-loader": "^5.0.0",
        "sass": "^1.63.6",
        "sass-loader": "^12.1.0",
        "vite": "^4.0.0"
    },
    "dependencies": {
        "bootstrap": "^5.3.0",
        "jquery": "^3.7.0",
        "toastr": "^2.1.4",
        "webpack": "^5.88.1"
    }
}

样式引用代码

<link rel="stylesheet" href="{{ mix('css/app.css') }}">

问题排查与修复方案

1. 修复.htaccess配置问题

当前Rewrite规则会导致静态资源和路由解析异常,修改为适配Hostinger的配置:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /folder1/

    # 跳过真实存在的文件和目录,直接访问静态资源
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # 转发请求到Laravel入口,保留请求参数
    RewriteRule ^(.*)$ public/index.php?/$1 [L,QSA]
</IfModule>
  • 新增的RewriteCond确保css、js等静态资源不会被转发到index.php,直接返回文件内容
  • QSA标志保证路由参数能正确传递到Laravel控制器

2. 确认资源构建与路径配置

  • 检查服务器public/css目录下是否存在app.css和mix-manifest.json,确保npm run production编译后的文件完整上传
  • 如果部署在子目录/folder1/,需在webpack.mix.js中设置资源根路径,重新编译上传:
mix.setResourceRoot('/folder1/public/');
mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css');

3. 清理路由缓存

在服务器终端执行以下命令,清除路由缓存避免解析异常:

php artisan route:clear

4. 检查服务器环境与权限

  • 确认Hostinger已启用mod_rewrite模块(可通过cPanel的Apache模块管理页验证)
  • 将public目录权限设为755,目录内文件权限设为644,确保Web服务器能读取静态资源

内容的提问来源于stack exchange,提问作者Juan Pablo Arango Lizcano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:05:32